RISC al PODER: La IBM RT PC
///////////////////////////
En el año 1986, IBM lanzaba al mercado una estación de trabajo RISC que
planteaba una revolucón. En su interior portaba una Unidad Central de
Proceso IBM ROMP y su megabyte de memoria RAM estándar podía expandirse
hasta la friolera de 16 MB. Se trataba de la IBM RT PC.
Era una computadora principalmente concebida para un uso como máquina
CAD/CAM, o fulgurante ordenador para ambientes científicos y educativos.
Podría operar con soltura como terminal POS (punto de venta), como
máquina para sistemas de control de taller, y en el peor de los casos,
como terminal para los más avanzados mainframes de IBM.
##Historia
###La Minicomputadora 801.
La IBM RT PC fue realmente concebida en la División de Investigación de
IBM en 1975, con la designación de "Minicomputadora 801". Esta fue
llamada así debdio al edificio en el cual fue ingeniada: el Edificio 801
del Centro de Investigación T.J. Watson de IBM en Yorktown Heighs, Nueva
York.
Por entonces, los investigadores de Ciencias del Cómputo habían
comprendido que la vasta mayoría de las tareas computacionales hacía uso
de una porción pequeña de las instrucciones disponibles en el
procesador. ¿Acaso no sería más simple construir una máquina más simple
y que realmente intentara exprimir lo máximo de estas pocas
instrucciones? Además de ser un diseño RISC (Instrucciones Reducidas),
la máquina también se proponía el objetivo de completar una instrucción
por cada ciclo de reloj.
Para lograrlo, todas las instrucciones de lógica y aritmética operarían
en los contenidos de los registros, y no tendría instrucciones de suma a
memoria, mover de memoria a memoria, o similares. En su lugar, se
proponían recurrir a funciones de direccionamiento simplificadas para
operar con memoria (tales como base mas desplazamiento o base mas
indice). Ni siquiera contarían con una instrucción completa para
multiplicar, sino que contaría con una instrucción de paso de
multiplicación.
Para optimizar aún más esta puesta, el compilador que IBM había
construido para la máquina - al que llamaron PL.8, en efecto un dialecto
de PL/I - recibió un amplio re estudio.
No obstante la fabricación de muchas iteraciones de desarrollo de la
801, el diseño final contó con 32 registros de 32 bits e instrucciones
de 4 bytes. Se dedicó un considerable esfuerzo a mantener las tasas de
salida computacional elevadas, y en esto retuvieron un éxito
considerable: la 801 alcazó los 15,1 millones de instrucciones por
segundo, un tiempo de ciclo de 63 nanosegundos que erogaba
aproximadamente el ansiado ciclo por instrucción.
###El microprocesador ROMP.
No mucho después de concluido el desarrollo de la 801 en 1977, la
División de Productos de Oficina de IBM se decidió por dismponer la
máquina entera en un microprocesador. El resultado de esto sería el
"Microprocesador de la División de Investigación de Productos de
Oficina", más conocido como ROMP. Con el diseño del sistema en chip
debieron hacerse ciertos compromisos. En los 70s, el número de buses
presente en una minicomputadora, las por entonces grandes cachés y los
elevados números de registros simplemente exacerbaban el costo, a la vez
que físicamente aún eran demasiado voluminosos como para inegrarse a muy
alta escala (VLSI).
Sin embargo, albergar todas las instrucciones, y concebirlas para que
tuviesen exacamente una WORD de longitud, simplificaron el diseño
considerablemente, logrando sorprendentes mejoras en la velocidad de
decodificado de instrucciones. Sin embargo, al encontrarse limitada a un
único bus de memoria que de por sí tiene un Word de ancho, se volvía
problemática, y requería una ajustado control de velocidad de ciclos de
reloj. Se volvió necesario implementar instrucciones de longitud
variable tanto de 2 como 4 bytes, así como el uso de series de registro
de instrucciones cargar y almacenar. Estos permitirían usar el ancho de
bus completo para la transferencia de datos. Naturalmente esto violó la
tasa de una instrucción por ciclo de reloj propuesta como requisito de
diseño en la 801, por lo que debemos considerar que "la mayoría" de las
instrucciones del ROMP ocupaban un ciclo.
Los bits se numeraban de izquierda a derecha, de mayor a menor, de 0 a
21. El ROMP contaba con 32 registros; los 16 registros de propósito
general eran equivalentes. También existían 16 registros de control del
sistema. En cuanto a las instrucciones, el total del ROMP tenía 118. Si
bien esto suena bastante para una arquitectura RISC, muchas de las
mismas se veían limitadas por las posibilidades técnicas del momento.
Estas 118 instrucciones podían dividirse en grupos:
* 17 de cargar/almacenar
* 73 computacionales y de transferencia de registros
* 16 de arbolado
* 3 trampas
* 7 de control de sistema
* 2 de entrada/salida
El ROMP contaba con una Word de 32 bits, y la memoria se direccionaba al
nivel byte. Se requería la alineación de memoria en los límites de WORD:
> La unidad de memoria fundamental es una word de 32 bits, y todas las
> operaciones de memoria involucran words de 32 bits similares. Dichas
> words se subdividen a su vez en medias-words y bytes. La memoria
> resulta direccionada según direcciones de byte, y las words y medias
> words necesitan estar en sus bordes apropiados. O sea, una dirección
> de words debe ser múltiple de cuatro, y una dirección de media word
> debe ser múltiple de dos.
Si bien el trabajo de desarrollo del ROMP tuvo su inicio ya en 1977, los
primeros chips aparecieron recién en 1981. Este retraso notable para IBM
fue provocado por múltiples revisiones de un diseño que fue madurando de
a poco, y por el hecho de no pocos modelos del curso de desarrollo
estaban concebicos con tecnología TTL. Finalmente según Mike Johnson -
miembro del primer equipo de diseño del ROMP - el retraso del
lanzamiento al público del chip desde 1981 hasta 1986 estuvo motivado en
ambiciones políticas de la compañía en cuanto a la integración software.
Esto sería determinante en su destino final.
##El Hardware
Si bien la máquina que IBM cimentó alredor del ROMP podía resultar
visualmente familiar y algo similar a la IBM PC "AT", la parte interna
de la RT difería considerablemente.
En primer lugar, la CPU y la memoria se encontraban dispuestos en una
plaqueta que insertada en una ranura de la placa madre. Esta era
principalmente un panel trasero de conexionado. Se produjeron tres
variantes de plaqueta de CPU, orientadas a distintas potencias de
cómputo que se percibieron como "buscadas por los prospectos clientes".
Estas eran:
Estándar: Con 5,88MHz, 1 MB de RAM integrada, expandible a 16MB en
plaquetas de memoria extra, y una plaqueta aceleradora de coma flotante
opcional con un coprocesador matemático NS32081 a 10 MHz.
Avanzada: con 10 MHz, 4 MB de RAM ECC, corpocesador matemático de coma
flotante Motorola 68881, y una plaqueta FPA Avanzada adicioinal que
contenía un multiplicador de coma flotante ADSP-3220 y una unidad
artimética ADSP-3221 fabricada por Analog Devices.
Avanzada Mejorada: con 12,5 MHz, 16 MB de RAM ECC, Acelerador avanzado
de coma flotante provisto similar al opcional de la versión estándar
(certificada por IBM como de 5,6 MIPS).
Asimismo, la IBM RT contaba con una MMU diseñada por la misma IBM que
ofrecía traducción de dirección de memoria, un búfer de traducción de
tabla, un búfer de almacén, ECC, y un máximo de hasta 1TB de memoria
virtual.
Aparentemente existieron dos presentaciones de gabinete para la misma.
La máquina asentada en el piso con el código IBM 6150, y la de sobremesa
con el 6151.
En 1989 los modelos fueron actualizados ligeramente, notablemente con la
transición al proceso CMOS de 1μm para la CPU.
En cuanto al bus de expansión, además de las cuatro ranuras para
tarjetas de sistema de 32 bits, la RT contaba también con dos ranuras
compatibles con ISA de 8 bits, y seis ranuras comtaible con ISA de 16
bits.
>En 1986, la IBM RT podía conseguirse con un disco de 210 MB, en 1987 se
>incorporó una unidad de 581 MB, y para 1988 de 746 MB. Este tamaño de
>disco rígido era notable si lo comparamos con la IBM PC AT del momento,
>con disco de 47 MB.
##El Software
La RT corría AIX, que para este momento consistía en un portado del UNIX
System V que incorporaba no pocas mejoras tomadas del BSD 4.2 de
Berkeley. El sistema de ventanas X se portó a AIX en la RT,
específicamente la versión 9. A resultas de los requerimientos estrictos
de alineación de memoria en WORDS del ROMP, esto requirió realizar un
cambio fundamnetal a X, lo que dio como resultado X Windows versión 10.
El sistema se proponía como una estación de trabajo destacable capaz de
competir con propuestas de Sun Microsystems, pero ofreciendo sobre ellas
las posibilidades de también integrarse al ya notable ámbito MS-DOS.
En efecto, entre los accesorios más notables de la RT se encontraba una
plaqueta de expansión opcional, que integraba una CPU Intel 80286, y que
le permitía usar software para MS-DOS y la línea IBM PC/XT/AT. Esta
plaqueta 286 ocupaba una de las ranuras ISA de 16 bits.
Además, AIX en la RT usaba un microkernel para controlar el teclado, el
mouse, y el sistema de ventanas, los discos, y la tarjeta de interfaz de
red a través del Gesdtor de Recursos Virtuales (VRM). Esto permitía
utilizar múltiples sistemas operativos de forma concurrente, innovación
lograda a través de la susodicha 80286 y un disco rígido con MS-DOS.
>Se habían producido plaquetas similares para la Apple II, y hubo placas
>similares capaces de operar con las Macintosh posteriores, pero ninguna
>de estas funcionaba de manera concurrente con un UNIX que servía de
>Host.
Efectivamente, para 1987 merced a la RT con Windows X v10 era posible
correr un sistema UNIX en red en una computadora RISC de 32 bits,
recurriendo a aplicaciones MS-DOS pensadas para x86 de 16 bits cuando
fuese necesario, y con ejecución concurrente (pudiéndose intercambiar
entre aplicaciones con Alt+Tab en un ambiente gráfico de ventanas).
¿Bastante moderno, verdad?
##Legado
A pesar de sus amplios logros técnicos, la IBM RT quedó prácticamente en
el olvido, y esto se debió principalmente al costo vs performance al
momento que llegó al mercado.
En las postrimerías de los 80s y comienzos de los 90s, las IBM PC pero
fundamentalmente sus clones pasaron a devorar prácticamente el mercado
del cómputo personal. Esto se aceleró con la salida al ruedo del
microprocesaor 80386 y Windows 3.1 (que tenía la posibilidad de
aprovechar sus características). Con esta combinación prácticamente a la
vuelta de la esquina, la estación de trabajo IBM RT nació prácticamente
muerta, suceso consumado con la escasa respuesta del sistema operativo
OS/2.
Aún así, el 801, la CPU ROMP, y la RT PC no quedaron en la nada. IBM
continuó trabajando en la arquitectura RISC y creó la arquitectura
POWER, variantes de las cuales siguieron disponibles por largo tiempo.
La RT también fue la primer aventura pública de IBM con UNIX. Ya
mencionamos que la RT avanzó al sistema de ventanas X, pero hubo un
evento aún mayor que involuctró a la RT. La línea de estaciones de
trabajo IBM RT PC se utiló como hubs de conmutación de paquetes en la
Red de la Fundación Nacional de las Ciencias de los EE.UU., y esta se
convertiría en 1987 en la columna vertebral de la red Internet.
Si bien en términos de ventas la máquina no representó un suceso
destacable para el Gigante Azul, las innovaciones que originó la
investigación y desarrollo de este producto trasvasaron al cómputo más
moderno. La RT PC fue también la primer máquina RISC comercialmente
disponible.
Como muchos otros artefactos de la historia de la tecnología y el
cómputo, la IBM RT fascina con lo que podría haber sido.