IBM POWER (conjunto de instrucciones)
# IBM POWER (conjunto de instrucciones)

IBM POWER ISA es una arquitectura de conjunto de instrucciones (ISA) desarrollada por IBM. El nombre es un acrónimo de Performance Optimization With Enhanced RISC.

La ISA se usa como base para microprocesadores de gama alta de IBM durante la década de 1990 y se usó 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 se convirtió en la arquitectura del conjunto de instrucciones de PowerPC y quedó obsoleta en 1998 cuando IBM presentó el procesador POWER3, que era principalmente un procesador PowerPC de 32/64 bits, pero incluía la POWER ISA para compatibilidad con versiones anteriores. El POWER ISA fue abandonado.

## Historia

### El proyecto de investigación 801.

En 1974, IBM comenzó un proyecto con el objetivo de diseño de crear una gran red de conmutación telefónica con una capacidad potencial para atender al menos 300 llamadas por segundo. Se proyectó que se necesitarían 20,000 instrucciones de máquina para manejar cada llamada mientras se mantiene una respuesta en tiempo real, por lo que se consideró necesario un procesador con un rendimiento de 12 MIPS. Este requisito era extremadamente ambicioso por el momento, pero se dio cuenta de que se podía prescindir de gran parte de la complejidad de las CPU contemporáneas, ya que esta máquina solo tendría que realizar E/S, sucursales, agregar registro-registro, mover datos entre registros y memoria, y no necesitaría instrucciones especiales para realizar operaciones aritméticas pesadas.

Esta sencilla filosofía de diseño, según 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á como RISC.

En 1975 el proyecto de conmutador telofonónico fue cancelado sin un prototipo. Sin embargo, a partir de las estimaciones de las simulaciones producidas en el primer año del proyecto, parecía que el procesador diseñado para este proyecto podría ser un procesador de propósito general muy prometedor, por lo que el trabajo continuó en el edificio # 801 del Centro de Investigación Thomas J. Watson, en El proyecto 801.

### Proyecto Cheetah 1982

Durante dos años en el Watson Research Center, se exploraron los límites superescalares del diseño 801, como la posibilidad de implementar el diseño utilizando múltiples unidades funcionales para mejorar el rendimiento, similar a lo que se había hecho en IBM System/360 Model 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 podría mantener múltiples instrucciones por ciclo, o qué cambios de diseño deben realizarse al diseño 801 para permitir unidades de ejecución múltiple .

Para aumentar el rendimiento, Cheetah tenía unidades de ejecución de rama, punto fijo y punto flotante separadas. Se hicieron muchos cambios en el diseño del 801 para permitir unidades de ejecución múltiple. Originalmente, se planificó la fabricación de Cheetah con tecnología emitter-coupled logic (ECL), pero para 1984 la tecnologíaCMOS permitió un aumento en el nivel de integración del circuito al tiempo que mejoraba el rendimiento del transistor.

### El proyecto America

En 1985, la investigación sobre una arquitectura RISC de segunda generación comenzó en el Centro de Investigación IBM Thomas J. Watson, produciendo la "arquitectura AMERICA"; en 1986, IBM Austin comenzó a desarrollar la serie RS/6000, basada en esa arquitectura.

### POWER

En febrero de 1990, las primeras computadoras de IBM en incorporar el conjunto de instrucciones POWER se llamaron "Sistema RISC/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, chip de coma fija, chip de coma flotante, 4 chips de caché de datos, chip de control de almacenamiento, chips de E/S y un chip de reloj. La configuración RIOS.9 de menor costo tenía 8 chips discretos: un chip de caché de instrucciones, chip de coma fija, chip de coma flotante, 2 chips de caché de datos, chip de control de almacenamiento, chip de E/S y un chip de reloj.

Una implementación de un solo chip de RIOS, RSC (para "RISC Single Chip"), se desarrolló para RS/6000 de gama baja; Las primeras máquinas con RSC se lanzaron en 1992.

### POWER2

IBM comenzó el desarrollo del procesador POWER2 como un sucesor del POWER1 dos años antes de la creación de la alianza 1991 Apple/IBM/Motorola en Austin, Texas. A pesar de verse afectado por la desviación de recursos para impulsar el esfuerzo de Apple/IBM/Motorola, el POWER2 tomó cinco años desde el inicio hasta el envío del sistema. Al agregar una segunda unidad de coma fija, una segunda unidad de coma flotante y otras mejoras de rendimiento al diseño, el POWER2 tuvo un desempeño de liderazgo cuando se anunció en noviembre de 1993.

También se agregaron nuevas instrucciones al conjunto de instrucciones:

* Instrucciones de almacenamiento de cuatro palabras. La instrucción de carga de cuatro palabras mueve dos valores adyacentes de doble precisión en dos registros adyacentes de coma flotante.
* Instrucción de raíz cuadrada en hardware.
* Instrucciones de conversión de coma flotante a entero.

Para soportar las líneas de productos RS/6000 y RS/6000 SP2 en 1996, IBM tenía su propio equipo de diseño para implementar 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ó toda la memoria caché de instrucciones POWER2, la coma fija, la coma flotante, el control de almacenamiento y los chips de caché de datos por separado en un enorme silicio. En el momento de su introducción, el P2SC era el procesador de conteo de transistores más grande y más alto de la industria. A pesar del desafío de su tamaño, complejidad y avanzado proceso CMOS, la primera versión de la máscara del del procesador se pudo enviar, y tenía un rendimiento de coma flotante de liderazgo en el momento en que se anunció. P2SC fue el procesador utilizado en la supercomputadora de ajedrez IBM Deep Blue de 1997, que venció al gran maestro de ajedrez Garri Kaspárov. Con sus sofisticadas unidades de coma flotante MAF gemelas y sus memorias con interfaces de gran ancho de banda y baja latencia, el P2SC estaba dirigido principalmente a aplicaciones científicas y de ingeniería. P2SC finalmente fue sucedido por el POWER3, que incluía la capacidad SMP de 64 bits y una transición completa a PowerPC, además de las sofisticadas unidades gemelas de coma flotante MAF de P2SC.

## La arquitectura

El diseño POWER desciende directamente de la CPU del 801, considerado el primer verdadero diseño de procesador RISC. El 801 se usó en varias aplicaciones dentro del hardware de IBM.

Aproximadamente al mismo tiempo que se lanzaba la PC/RT, IBM comenzó el Proyecto América, para diseñar la CPU más poderosa del mercado. Estaban interesados principalmente en solucionar dos problemas en el diseño 801:

* El 801 requirió que todas las instrucciones se completaran en un ciclo de reloj, lo que excluía las instrucciones de coma flotante.
* Aunque el decodificador se canalizó como un efecto secundario de estas operaciones de un solo ciclo, no utilizaron efectos superscalar .

La coma flotante se convirtió en un foco para el Proyecto América, e IBM pudo usar nuevos algoritmos desarrollados a principios de la década de 1980 que podían admitir multiplicaciones y divisiones de doble precisión de 64 bits en un solo ciclo. La parte de FPU del diseño estaba separada de las partes del decodificador de instrucciones y de números enteros, permitiendo que el decodificador enviara instrucciones a las unidades de ejecución FPU y ALU (enteros) al mismo tiempo. IBM complementó esto con un complejo decodificador de instrucciones que podía obtener una instrucción, decodificar otra y enviarlas a la ALU y la FPU al mismo tiempo, lo que da como resultado uno de los primeros diseños de CPU superescalar en uso.

El sistema utiliza 32 registros de enteros de 32 bits y otros 32 registros de coma flotante de 64 bits, cada uno en su propia unidad. La unidad de saltos 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.

El Apéndice E del Libro I: Arquitectura de conjunto de instrucciones de usuario de PowerPC del Libro de arquitectura de PowerPC, Versión 2.02 describe las diferencias entre las arquitecturas de conjunto de instrucciones POWER y POWER2 y la versión de la arquitectura de conjunto de instrucciones PowerPC implementada por POWER5.

