La Advanced Scientific Computer ( ASC ) es una supercomputadora diseñada y fabricada por Texas Instruments (TI) entre 1966 y 1973. [ 1 ] [ 2 ] La unidad central de procesamiento (CPU) de la ASC admitía el procesamiento vectorial , una técnica que mejoraba el rendimiento y que fue clave para su alto rendimiento. La ASC, junto con la supercomputadora STAR-100 de Control Data Corporation (presentada el mismo año), fueron las primeras computadoras en incorporar el procesamiento vectorial. Sin embargo, ni la ASC ni la STAR-100 aprovecharon plenamente el potencial de esta técnica debido a una comprensión insuficiente de la misma; fue la supercomputadora Cray-1 de Cray Research , anunciada en 1975, la que lograría implementar y popularizar plenamente el procesamiento vectorial. La implementación más exitosa del procesamiento vectorial en la Cray-1 definiría a la ASC (y a la STAR-100) como procesadores vectoriales de primera generación, mientras que la Cray-1 pertenecería a la segunda.
Historia
TI comenzó como una división de Geophysical Service Incorporated (GSI), una empresa que realizaba estudios sísmicos para compañías de exploración petrolera . GSI se convirtió en una subsidiaria de TI, y esta última buscaba aplicar la tecnología informática más avanzada al procesamiento y análisis de conjuntos de datos sísmicos. El proyecto ASC se inició como Advanced Seismic Computer (Computadora Sísmica Avanzada) . A medida que el proyecto se desarrollaba, TI decidió ampliar su alcance. La palabra "Sísmica" fue reemplazada por "Científica" en el nombre, lo que permitió que el proyecto conservara la denominación ASC.
Originalmente, el software, que incluía un sistema operativo y un compilador FORTRAN , fue desarrollado bajo contrato por Computer Usage Company , bajo la dirección de George R. Trimble, Jr. [ 3 ] [ 4 ] , pero posteriormente fue asumido por la propia TI. La Universidad Metodista del Sur en Dallas desarrolló un compilador ALGOL para el ASC.
Arquitectura
El ASC se basaba en una única memoria compartida de alta velocidad, a la que accedían la CPU y ocho controladores de canal de E/S , en una organización similar a la del innovador CDC 6600 de Seymour Cray . El acceso a la memoria se realizaba exclusivamente bajo el control de la unidad de control de memoria (MCU). La MCU era una red paralela bidireccional de 256 bits por canal que podía admitir hasta ocho procesadores independientes, con un noveno canal para acceder a la "memoria principal" (denominada " memoria extendida "). La MCU también actuaba como controlador de caché , ofreciendo acceso de alta velocidad a una memoria basada en semiconductores para los ocho puertos del procesador y gestionando todas las comunicaciones con el espacio de direcciones de 24 bits en la memoria principal. La MCU se diseñó para operar de forma asíncrona, lo que le permitía funcionar a diversas velocidades y escalar en diferentes niveles de rendimiento. Por ejemplo, la memoria principal podía construirse con memoria de núcleo , más lenta pero menos costosa , aunque esto no se utilizó en la práctica. En su máxima velocidad, podía mantener tasas de transferencia de 80 millones de palabras de 32 bits por segundo por puerto, para una tasa de transferencia total de 640 millones de palabras por segundo. Esto superaba con creces las capacidades incluso de las memorias más rápidas de la época.
La CPU tenía un ciclo de reloj de 60 ns ( frecuencia de reloj de 16,67 MHz) y su lógica se basaba en circuitos integrados lógicos acoplados por emisor de 20 puertas , desarrollados originalmente por TI para la supercomputadora ILLIAC IV . La CPU contaba con una arquitectura y organización extremadamente avanzadas para su época, compatible con instrucciones aritméticas y matemáticas microcodificadas que operaban con escalares, vectores o matrices. El procesamiento vectorial utilizaba una arquitectura de memoria a memoria, donde los operandos vectoriales se leían de la memoria y el vector resultante se escribía en ella. La CPU podía tener uno, dos o cuatro carriles vectoriales, lo que le permitía producir de uno a cuatro resultados vectoriales por ciclo, según el número de carriles instalados. Los carriles vectoriales también se utilizaban para instrucciones escalares, y cada carril podía mantener hasta 12 instrucciones escalares en ejecución simultáneamente. Con cuatro carriles, la CPU permitía hasta 36 instrucciones en total.
El procesador contaba con cuarenta y ocho registros de 32 bits, una cantidad enorme para la época. Dieciséis de estos registros se utilizaban para el direccionamiento, dieciséis para operaciones escalares, ocho para desplazamientos de índice y ocho para especificar los distintos parámetros de las instrucciones vectoriales. Los datos se transferían entre los registros y la memoria mediante instrucciones de carga/almacenamiento, que podían transferir entre 4 y 64 bits (dos registros) a la vez.
La mayoría de los procesadores vectoriales solían tener limitaciones en cuanto al ancho de banda de la memoria; es decir, podían procesar datos más rápido de lo que podían obtenerlos de ella. Este sigue siendo un problema importante en los diseños SIMD modernos, razón por la cual se ha invertido un esfuerzo considerable en aumentar el rendimiento de la memoria en los diseños de computadoras modernas (aunque en gran medida sin éxito). En el ASC, esto mejoró un poco con una unidad de anticipación que predecía los accesos a memoria futuros y los cargaba en los registros escalares de forma invisible, utilizando una interfaz de memoria en la CPU llamada unidad de búfer de memoria (MBU).
El procesador periférico (PP) era un sistema independiente dedicado exclusivamente a la ejecución rápida del sistema operativo y los programas que se ejecutaban en él, así como a la alimentación de datos a la CPU. El PP estaba compuesto por ocho procesadores virtuales (PV), diseñados para gestionar únicamente instrucciones y aritmética básica de enteros. Cada PV disponía de su propio contador de programa y registros, lo que permitía al sistema ejecutar ocho programas simultáneamente, limitado únicamente por los accesos a la memoria. Mantener ocho programas en ejecución permitía al sistema distribuir la ejecución de los programas en la CPU en función de los datos disponibles en el bus de memoria en cada momento, minimizando así el tiempo de espera de la CPU.
El PP también incluía un conjunto de sesenta y cuatro registros de comunicaciones (CR) de 32 bits. Los CR almacenaban el estado necesario para la comunicación entre las distintas partes del ASC: la CPU, los VP y los controladores de canal .
El conjunto de instrucciones ASC incluía una instrucción de inversión de bits diseñada para acelerar el cálculo de las transformadas rápidas de Fourier (FFT). Para cuando el ASC entró en producción, ya se habían desarrollado mejores algoritmos de FFT que no requerían esta operación. Texas Instruments ofreció una recompensa a quien encontrara una aplicación válida para esta instrucción, pero nunca se cobró.
Recepción del mercado
Cuando las máquinas ASC se lanzaron a principios de la década de 1970, superaron a casi todas las demás, incluyendo la CDC STAR-100 , e incluso, bajo ciertas condiciones, igualaron el rendimiento de la única ILLIAC IV . Sin embargo, solo se habían instalado siete cuando se anunció la Cray-1 en 1975. La Cray-1 dedicó casi todo su diseño al acceso sostenido a alta velocidad a la memoria, incluyendo más de un millón de palabras de 64 bits de memoria semiconductora y un tiempo de ciclo que era una quinta parte del de la ASC (12,5 ns). Si bien la ASC era, en cierto modo, un diseño más ampliable, en el mercado de las supercomputadoras se prioriza la velocidad, y la Cray-1 era mucho más rápida. Las ventas de la ASC cesaron casi de inmediato, y aunque se había diseñado una versión mejorada con un tiempo de ciclo una quinta parte del original, Texas Instruments decidió abandonar el mercado.
Aplicaciones de procesamiento vectorial
El prototipo ASC #1 era un sistema de una sola tubería y se trasladó a Austin, Texas, fuera de la planta principal de TI por motivos de información confidencial. Posteriormente se actualizó a dos tuberías y se renombró como ASC #1A. Luego fue utilizado por la división GSI de TI para el procesamiento de datos sísmicos. El ASC #2 fue arrendado a Shell Oil Company en los Países Bajos y también se utilizó para el procesamiento de datos sísmicos. El ASC #3 se instaló en el Arsenal de Redstone en Huntsville, Alabama, para el desarrollo de tecnología de interceptación de misiles antibalísticos. Con el Tratado SALT , el sistema fue posteriormente redesplegado al Cuerpo de Ingenieros del Ejército en Vicksburg, Mississippi, para el análisis de esfuerzos en presas. El ASC #4 fue utilizado por la NOAA en la Universidad de Princeton para el desarrollo de modelos de pronóstico meteorológico. Los sistemas ASC #5 y #6 se instalaron en la planta principal de TI en Austin y también fueron utilizados por GSI para el procesamiento de datos sísmicos. El ASC #7 fue enviado al Laboratorio de Investigación Naval en Washington, DC [ 5 ] para estudios de física de plasmas.
Referencias
- ↑ Electrónica . McGraw-Hill Publishing Company. 1973. pág. 36.
- ↑ "Historia de la computadora científica avanzada" . Archivado del original el 21 de octubre de 2004.
- ↑ George R. Trimble Jr. (24 de junio de 2005). "Historia de CUC" . Museo de Historia de la Computación . Consultado el 30 de mayo de 2010 .
- ↑ George R. Trimble Jr. (Verano de 2001). "Una breve historia de la informática. Memorias de vivir al límite". IEEE Annals of the History of Computing . 23 (3). IEEE Computer Society: 44– 59. Bibcode : 2001IAHC...23c..44T . doi : 10.1109/85.948905 . S2CID 5259268 .
- ↑ "ASC No. 6 utilizado para datos GSI" . Consultado el 10 de agosto de 2024 .
- Peter M. Kogge (1981). La arquitectura de las computadoras segmentadas . Taylor & Francis . págs. 159-162 .
Enlaces externos
- La TI ASC: una arquitectura de supercomputadora altamente modular y flexible.
- Documentación de TI ASC en bitsavers.org
- Computadoras de Texas Instruments
- supercomputadoras vectoriales
- Introducciones relacionadas con la informática en 1966