IBM POWER es una arquitectura de conjunto de instrucciones (ISA) de computadora con conjunto de instrucciones reducido ( RISC ) desarrollada por IBM . El nombre es un acrónimo de Performance Optimization With Enhanced RISC . [1]
El ISA se utilizó como base para los microprocesadores de gama alta de IBM durante la década de 1990 y se utilizó en muchos de los servidores, minicomputadoras , estaciones de trabajo y supercomputadoras de IBM . Estos procesadores se denominan POWER1 (RIOS-1, RIOS.9, RSC , RAD6000 ) y POWER2 (POWER2, POWER2+ y P2SC).
La ISA evolucionó hasta convertirse en la arquitectura del conjunto de instrucciones PowerPC y quedó obsoleta en 1998 cuando IBM presentó el procesador POWER3 , que era principalmente un procesador PowerPC de 32/64 bits , pero que incluía la arquitectura IBM POWER para compatibilidad con versiones anteriores . La arquitectura IBM POWER original fue abandonada. PowerPC evolucionó hasta convertirse en la tercera Power ISA en 2006.
IBM continúa desarrollando núcleos de microprocesador PowerPC para su uso en sus ofertas de circuitos integrados de aplicaciones específicas (ASIC). [ cita requerida ] Muchas aplicaciones de gran volumen incorporan núcleos PowerPC.
En 1974, IBM inició un proyecto con el objetivo de diseño de crear una gran red de conmutación telefónica con una capacidad potencial para tratar al menos 300 llamadas por segundo. Se proyectó que se necesitarían 20.000 instrucciones de máquina para manejar cada llamada manteniendo una respuesta en tiempo real, por lo que se consideró necesario un procesador con un rendimiento de 12 MIPS . [2] Este requisito era extremadamente ambicioso para la época, pero se comprendió que se podía prescindir de gran parte de la complejidad de las CPU contemporáneas, ya que esta máquina solo necesitaría realizar operaciones de E/S , bifurcaciones, añadir registro -registro, mover datos entre registros y memoria, y no tendría necesidad de instrucciones especiales para realizar operaciones aritméticas pesadas.
Esta filosofía de diseño simple, mediante la cual cada paso de una operación compleja se especifica explícitamente mediante una instrucción de máquina y todas las instrucciones deben completarse en el mismo tiempo constante, más tarde se conocería como RISC .
En 1975, el proyecto de la centralita telefónica se canceló sin un prototipo. Sin embargo, a partir de las estimaciones de las simulaciones realizadas durante el primer año del proyecto, parecía que el procesador que se estaba diseñando para este proyecto podría ser un procesador de uso general muy prometedor, por lo que se continuó trabajando en el edificio n.° 801 del Centro de Investigación Thomas J. Watson , en el proyecto 801. [2]
Durante dos años en el Watson Research Center, se exploraron los límites superescalares del diseño del 801, como por ejemplo la viabilidad de implementar el diseño utilizando múltiples unidades funcionales para mejorar el rendimiento, de forma similar a lo que se había hecho en el IBM System/360 Modelo 91 y el CDC 6600 (aunque el Modelo 91 se había basado en un diseño CISC ), para determinar si una máquina RISC podía mantener múltiples instrucciones por ciclo, o qué cambios de diseño debían realizarse al diseño del 801 para permitir múltiples unidades de ejecución.
Para aumentar el rendimiento, Cheetah tenía unidades de ejecución de punto flotante , de punto fijo y de rama separadas. [3] [4] Se realizaron muchos cambios al diseño del 801 para permitir múltiples unidades de ejecución. Originalmente, se planeó que Cheetah se fabricara utilizando tecnología de lógica acoplada por emisor bipolar (ECL), pero en 1984 la tecnología de semiconductores de óxido metálico complementarios ( CMOS ) permitió un aumento en el nivel de integración del circuito al tiempo que mejoraba el rendimiento de la lógica de transistores.
En 1985, se inició la investigación sobre una arquitectura RISC de segunda generación en el Centro de Investigación Thomas J. Watson de IBM, dando como resultado la "arquitectura AMERICA"; [2] en 1986, IBM Austin comenzó a desarrollar la serie RS/6000 , basada en esa arquitectura. [3] [4]
En febrero de 1990, las primeras computadoras de IBM que incorporaron el conjunto de instrucciones POWER se denominaron "RISC System/6000" o RS/6000 . Estas computadoras RS/6000 se dividieron en dos clases, estaciones de trabajo y servidores , y por lo tanto se introdujeron como POWERstation y POWERserver. La CPU RS/6000 tenía 2 configuraciones, llamadas "RIOS-1" y "RIOS.9" (o más comúnmente la CPU " POWER1 "). Una configuración RIOS-1 tenía un total de 10 chips discretos: un chip de caché de instrucciones, un chip de punto fijo, un chip de punto flotante, 4 chips de caché de datos , un chip de control de almacenamiento, chips de entrada/salida y un chip de reloj. La configuración RIOS.9 de menor costo tenía 8 chips discretos: un chip de caché de instrucciones, un chip de punto fijo, un chip de punto flotante, 2 chips de caché de datos, un chip de control de almacenamiento, un chip de entrada/salida y un chip de reloj.
Una implementación de un solo chip de RIOS, RSC (por " RISC Single Chip "), fue desarrollada para los RS/6000 de gama baja; las primeras máquinas que usaron RSC fueron lanzadas en 1992.
IBM inició el desarrollo del procesador POWER2 como sucesor del POWER1 dos años antes de la creación de la alianza Apple/IBM/Motorola en 1991 en Austin, Texas . A pesar de verse afectado por la desviación de recursos para impulsar el proyecto Apple/IBM/Motorola, el POWER2 tardó cinco años desde su lanzamiento hasta su distribución. Al añadir una segunda unidad de punto fijo, una segunda unidad de punto flotante y otras mejoras de rendimiento al diseño, el POWER2 alcanzó un rendimiento líder cuando se anunció en noviembre de 1993.
También se agregaron nuevas instrucciones al conjunto de instrucciones:
Para dar soporte a las líneas de productos RS/6000 y RS/6000 SP2 en 1996, IBM hizo que su propio equipo de diseño implementara una versión de un solo chip de POWER2, el P2SC ("POWER2 Super Chip"), fuera de la alianza Apple/IBM/Motorola en el proceso CMOS-6S más avanzado y denso de IBM. P2SC combinó todos los chips separados de caché de instrucciones, punto fijo, punto flotante, control de almacenamiento y caché de datos de POWER2 en un chip enorme. En el momento de su introducción, P2SC era el procesador más grande y con mayor cantidad de transistores en la industria. A pesar del desafío de su tamaño, complejidad y proceso CMOS avanzado, se pudo enviar la primera versión de cinta del procesador y tenía un rendimiento de punto flotante líder en el momento de su anuncio. P2SC fue el procesador utilizado en la supercomputadora de ajedrez IBM Deep Blue de 1997 que venció al gran maestro de ajedrez Garry Kasparov . Con sus dos sofisticadas unidades de coma flotante MAF y sus enormes interfaces de memoria de baja latencia y ancho de banda, el P2SC estaba destinado principalmente a aplicaciones científicas y de ingeniería. El P2SC fue finalmente reemplazado por el POWER3, que incluía 64 bits, capacidad SMP y una transición completa a PowerPC además de las sofisticadas dos unidades de coma flotante MAF del P2SC.
El diseño POWER desciende directamente de la CPU 801 , considerada ampliamente como el primer diseño de procesador RISC verdadero. El 801 se utilizó en varias aplicaciones dentro del hardware de IBM. [2]
Casi al mismo tiempo que se lanzaba el PC/RT, IBM inició el Proyecto América , para diseñar la CPU más potente del mercado. Su principal interés era solucionar dos problemas del diseño del 801:
El punto flotante se convirtió en un tema central del Proyecto América, e IBM pudo utilizar nuevos algoritmos desarrollados a principios de los años 1980 que podían soportar multiplicaciones y divisiones de doble precisión de 64 bits en un solo ciclo. La parte FPU del diseño estaba separada del decodificador de instrucciones y de las partes enteras, lo que permitía al decodificador enviar instrucciones tanto a la FPU como a las unidades de ejecución ALU (enteros) al mismo tiempo. IBM complementó esto con un decodificador de instrucciones complejo que podía obtener una instrucción, decodificar otra y enviar una a la ALU y a la FPU al mismo tiempo, lo que dio como resultado uno de los primeros diseños de CPU superescalares en uso.
El sistema utilizaba 32 registros enteros de 32 bits y otros 32 registros de coma flotante de 64 bits, cada uno en su propia unidad. La unidad de ramificación también incluía una serie de registros "privados" para su propio uso, incluido el contador de programa .
Otra característica interesante de la arquitectura es un sistema de direcciones virtuales que mapea todas las direcciones en un espacio de 52 bits. De esta manera, las aplicaciones pueden compartir memoria en un espacio "plano" de 32 bits, y todos los programas pueden tener diferentes bloques de 32 bits cada uno.
Apéndice E del Libro I: Arquitectura del conjunto de instrucciones de usuario PowerPC del Libro Arquitectura PowerPC, versión 2.02 [5] describe las diferencias entre las arquitecturas de conjunto de instrucciones POWER y POWER2 y la versión de la arquitectura del conjunto de instrucciones PowerPC implementada por el POWER5.