stringtranslate.com

Computadora científica avanzada TI

La Advanced Scientific Computer ( ASC ) es una supercomputadora diseñada y fabricada por Texas Instruments (TI) entre 1966 y 1973. [1] La unidad central de procesamiento (CPU) de la ASC admitía el procesamiento vectorial , una técnica de mejora del rendimiento que era clave para su alto rendimiento. La ASC, junto con la supercomputadora STAR-100 de Control Data Corporation (que se presentó el mismo año), fueron las primeras computadoras en incorporar el procesamiento vectorial. Sin embargo, ni la ASC ni la STAR-100 aprovecharon por completo el potencial de esta técnica debido a una comprensión insuficiente de la técnica; fue la supercomputadora Cray Research Cray-1 , anunciada en 1975, la que realizaría y popularizaría por completo el procesamiento vectorial. La implementación más exitosa del procesamiento vectorial en la Cray-1 demarcaría a la ASC (y a la STAR-100) como procesadores vectoriales de primera generación, y 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 empresas de exploración petrolera . GSI era ahora una subsidiaria de TI, y TI quería aplicar la última tecnología informática al procesamiento y análisis de conjuntos de datos sísmicos. El proyecto ASC comenzó como Advanced Seismic Computer . A medida que el proyecto se desarrollaba, TI decidió ampliar su alcance. "Seismic" fue reemplazado por "Scientific" en el nombre, lo que permitió que el proyecto mantuviera la designación ASC.

Originalmente, el software, que incluía un sistema operativo y un compilador FORTRAN , fue realizado bajo contrato por Computer Usage Company , bajo la dirección de George R. Trimble, Jr. [2] [3], pero luego fue asumido por la propia TI. La Southern Methodist University 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 innovadora CDC 6600 de Seymour Cray . El acceso a la memoria se realizaba únicamente 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" (conocida como "memoria extendida"). La MCU también actuaba como un controlador de caché , ofreciendo acceso de alta velocidad a una memoria basada en semiconductores para los ocho puertos del procesador y manejando todas las comunicaciones al espacio de direcciones de 24 bits en la memoria principal. La MCU fue diseñada para operar de forma asincrónica, lo que le permitía trabajar a una variedad de velocidades y escalar en una serie de puntos de rendimiento. Por ejemplo, la memoria principal podía construirse a partir de una memoria central más lenta pero menos costosa , aunque esto no se utilizó en la práctica. En su máxima capacidad, podía mantener velocidades de transferencia de 80 millones de palabras de 32 bits por segundo por puerto, lo que sumaba una velocidad de transferencia total de 640 millones de palabras por segundo, una cifra que 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 estaba construida a partir de circuitos integrados de lógica acoplada a emisor de 20 puertas desarrollados originalmente por TI para la supercomputadora ILLIAC IV . La CPU tenía una arquitectura y una organización extremadamente avanzadas para su época, admitiendo instrucciones aritméticas y matemáticas microcodificadas que operaban en escalares, vectores o matrices. Las instalaciones de procesamiento vectorial tenían una arquitectura de memoria a memoria; donde los operandos vectoriales se leían desde 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 en cada ciclo, dependiendo del número de carriles vectoriales instalados. Los carriles vectoriales también se usaban para instrucciones escalares, y cada carril podía mantener en vuelo hasta 12 instrucciones escalares simultáneamente. La CPU, con cuatro carriles, permitía hasta 36 instrucciones en total en toda la CPU.

El procesador tenía cuarenta y ocho registros de 32 bits, una cantidad enorme para la época. Dieciséis de los registros se utilizaban para 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 movían entre los registros y la memoria mediante instrucciones de carga y almacenamiento, que podían transferir de 4 a 64 bits (dos registros) a la vez.

La mayoría de los procesadores vectoriales tendían a tener un ancho de banda de memoria limitado, es decir, podían procesar datos más rápido de lo que podían obtenerlos de la memoria. Esto sigue siendo un problema importante también en los diseños SIMD modernos, por lo que se ha hecho un esfuerzo considerable para aumentar el rendimiento de la memoria en los diseños de computadoras modernas (aunque en gran medida sin éxito). En el ASC esto se mejoró un poco con una unidad de anticipación que predecía los próximos accesos a la memoria 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" era un sistema independiente dedicado exclusivamente a ejecutar rápidamente el sistema operativo y los programas que se ejecutaban en él, así como a suministrar datos a la CPU. El PP estaba formado por ocho "procesadores virtuales" (VP), que estaban diseñados para manejar únicamente instrucciones y aritmética básica de números enteros. Cada VP tenía su propio contador de programa y registros, y el sistema podía así ejecutar ocho programas al mismo tiempo, limitado únicamente por los accesos a la memoria. Mantener ocho programas en ejecución permitía al sistema alternar la ejecución de los programas en la CPU dependiendo de los datos que estuvieran disponibles en el bus de memoria en ese momento, minimizando el "tiempo muerto" en el que la CPU tenía que esperar a que llegaran los datos de la memoria.

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 del ASC incluye una instrucción de inversión de bits que tenía como objetivo acelerar el cálculo de las transformadas rápidas de Fourier (FFT). Cuando el ASC estaba en producción, se habían desarrollado mejores algoritmos de FFT que no requerían esta operación. TI ofreció una recompensa a la primera persona que encontrara un uso válido para esta instrucción, pero nunca se cobró.

Recepción en el mercado

Cuando las máquinas ASC estuvieron disponibles por primera vez a principios de la década de 1970, superaron a casi todas las demás máquinas, incluida la CDC STAR-100 , y en ciertas condiciones igualaron al ILLIAC IV . Sin embargo, solo se habían instalado siete cuando se anunció el Cray-1 en 1975. El Cray-1 dedicó casi todo su diseño al acceso sostenido de alta velocidad a la memoria, [ aclaración necesaria ] [ cita requerida ] incluyendo más de un millón de palabras de 64 bits de memoria de semiconductores y un tiempo de ciclo que era una quinta parte del del ASC (12,5 ns). Aunque el ASC era en algunos aspectos un diseño más ampliable, en el mercado de supercomputadoras se prefiere la velocidad, [ aclaración necesaria ] y el Cray-1 era mucho más rápido. Las ventas de ASC terminaron casi de la noche a la mañana, y aunque se había diseñado un ASC mejorado con un tiempo de ciclo una quinta parte del original, Texas Instruments decidió salir del mercado.

Aplicaciones de procesamiento de vectores

El prototipo ASC #1 era un sistema de un solo tubo y se instaló en Austin, Texas, fuera de la planta principal de TI por razones de información confidencial. Más tarde se actualizó a dos tubos 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 Redstone en Huntsville, Alabama, para el desarrollo de tecnología de interceptación de misiles antibalísticos. Con el Tratado SALT , el sistema se redistribuyó más tarde al Cuerpo de Ingenieros del Ejército en Vicksburg, Mississippi, para el análisis de tensiones de presas. El ASC #4 fue utilizado por la NOAA en la Universidad de Princeton para desarrollar modelos de pronóstico del tiempo. 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 se destinó al Laboratorio de Investigación Naval en Washington, DC [4] para estudios de física del plasma.

Referencias

  1. ^ Electrónica. McGraw-Hill Publishing Company. 1973. pág. 36.
  2. ^ George R. Trimble Jr. (24 de junio de 2005). «Historia de la CUC». Museo de Historia de la Computación . Consultado el 30 de mayo de 2010 .
  3. ^ George R. Trimble Jr. (verano de 2001). "Una breve historia de la informática. Memorias de una vida al límite". IEEE Annals of the History of Computing . 23 (3). IEEE Computer Society: 44–59. doi :10.1109/85.948905. S2CID  5259268.
  4. ^ "ASC No. 6 utilizado para datos GSI" . Consultado el 10 de agosto de 2024 .

Enlaces externos