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.