La memoria de línea de retardo es una forma de memoria de computadora , en su mayor parte obsoleta, que se utilizó en algunas de las primeras computadoras digitales y está reapareciendo en forma de líneas de retardo ópticas. Al igual que muchas formas modernas de memoria de computadora electrónica, la memoria de línea de retardo era una memoria actualizable , pero a diferencia de la memoria de acceso aleatorio moderna , la memoria de línea de retardo era de acceso secuencial .
La tecnología de línea de retardo analógica se ha utilizado desde la década de 1920 para retrasar la propagación de señales analógicas. Cuando se utiliza una línea de retardo como dispositivo de memoria, se conectan un amplificador y un formador de pulsos entre la salida de la línea de retardo y la entrada. Estos dispositivos recirculan las señales desde la salida hacia la entrada, creando un bucle que mantiene la señal mientras se aplica energía. El formador garantiza que los pulsos permanezcan bien formados, eliminando cualquier degradación debido a pérdidas en el medio.
La capacidad de memoria es igual al tiempo que se tarda en transmitir un bit dividido por el tiempo de recirculación. Los primeros sistemas de memoria de línea de retardo tenían capacidades de unos pocos miles de bits (aunque el término "bit" no era de uso popular en ese momento), con tiempos de recirculación medidos en microsegundos . Para leer o escribir una dirección de memoria en particular , es necesario esperar a que la señal que representa su valor circule a través de la línea de retardo hacia la electrónica. La latencia para leer o escribir cualquier dirección en particular depende del tiempo y de la dirección, pero no es mayor que el tiempo de recirculación.
El uso de una línea de retardo para una memoria de computadora fue inventado por J. Presper Eckert a mediados de la década de 1940 para su uso en computadoras como la EDVAC y la UNIVAC I. Eckert y John Mauchly solicitaron una patente para un sistema de memoria de línea de retardo el 31 de octubre de 1947; la patente se emitió en 1953. [1] Esta patente se centró en las líneas de retardo de mercurio, pero también analizó las líneas de retardo hechas de cadenas de inductores y condensadores , las líneas de retardo magnetoestrictivas y las líneas de retardo construidas utilizando discos giratorios para transferir datos a un cabezal de lectura en un punto de la circunferencia desde un cabezal de escritura en otra parte alrededor de la circunferencia.
El concepto básico de la línea de retardo se originó con la investigación de radar de la Segunda Guerra Mundial , como un sistema para reducir el desorden de los reflejos del suelo y otros objetos inmóviles.
Un sistema de radar consta principalmente de una antena, un transmisor, un receptor y una pantalla . La antena está conectada al transmisor, que envía un breve pulso de energía de radio antes de desconectarse nuevamente. Luego, la antena se conecta al receptor, que amplifica las señales reflejadas y las envía a la pantalla. Los objetos más alejados del radar devuelven ecos más tarde que los más cercanos, lo que la pantalla indica visualmente como un "parpadeo", que se puede medir con una escala para determinar el alcance.
Los objetos inmóviles que se encuentran a una distancia fija de la antena siempre devuelven una señal con el mismo retraso. Esta aparecería como un punto fijo en la pantalla, lo que dificultaría la detección de otros objetivos en el área. Los primeros radares simplemente apuntaban sus haces lejos del suelo para evitar la mayor parte de este "desorden". Esta no era una situación ideal; requería apuntar con cuidado, lo que era difícil para los radares móviles más pequeños, y no eliminaba otras fuentes de reflejos similares al desorden de características como colinas prominentes, y en el peor de los casos permitiría que los aviones enemigos que volaran a baja altura pasaran literalmente "debajo del radar".
Para filtrar los objetos estáticos, se compararon dos pulsos y se eliminaron los retornos con los mismos tiempos de retardo. Para ello, la señal enviada desde el receptor a la pantalla se dividió en dos, con una ruta que conducía directamente a la pantalla y la segunda que conducía a una unidad de retardo. El retardo se ajustó cuidadosamente para que fuera un múltiplo del tiempo entre pulsos, o " frecuencia de repetición de pulso ". Esto dio como resultado que la señal retrasada de un pulso anterior saliera de la unidad de retardo al mismo tiempo que se recibía la señal de un pulso más nuevo desde la antena. Una de las señales se invirtió eléctricamente, normalmente la del retardo, y luego las dos señales se combinaron y se enviaron a la pantalla. Cualquier señal que estuviera en la misma ubicación fue anulada por la señal invertida de un pulso anterior, dejando solo los objetos en movimiento en la pantalla.
Se inventaron varios tipos diferentes de sistemas de retardo para este propósito, con un principio común: el almacenamiento acústico de la información en un medio. El MIT experimentó con varios sistemas, incluidos el vidrio, el cuarzo, el acero y el plomo. Los japoneses implementaron un sistema que consistía en un elemento de cuarzo con un revestimiento de vidrio en polvo que reducía las ondas superficiales que interferían con la recepción adecuada. El Laboratorio de Investigación Naval de los Estados Unidos utilizó varillas de acero envueltas en una hélice, pero esto solo era útil para frecuencias bajas por debajo de 1 MHz. Raytheon utilizó una aleación de magnesio desarrollada originalmente para hacer campanas. [2]
El primer sistema práctico de descontaminación basado en este concepto fue desarrollado por J. Presper Eckert en la Escuela Moore de Ingeniería Eléctrica de la Universidad de Pensilvania . Su solución utilizaba una columna de mercurio con transductores de cristal piezoeléctrico (una combinación de altavoz y micrófono) en cada extremo. Las señales del amplificador del radar se enviaban al transductor en un extremo del tubo, que generaba una pequeña onda en el mercurio. La onda viajaba rápidamente al otro extremo del tubo, donde el otro transductor la leía, se invertía y se enviaba a la pantalla. Se necesitaba una disposición mecánica cuidadosa para garantizar que el tiempo de retardo coincidiera con el tiempo entre pulsos del radar que se estaba utilizando.
Todos estos sistemas eran aptos para su conversión en memoria de ordenador. La clave era restaurar y reciclar las señales, de modo que no desaparecieran después de atravesar el retardo. Esto era relativamente fácil de conseguir con una electrónica sencilla.
Después de la guerra, Eckert se dedicó al desarrollo de ordenadores, un tema de cierto interés en aquel momento. Uno de los problemas con el desarrollo práctico era la falta de un dispositivo de memoria adecuado, y el trabajo de Eckert sobre los retrasos del radar le dio una gran ventaja sobre otros investigadores en este aspecto.
Para una aplicación informática, el tiempo seguía siendo crítico, pero por una razón diferente. Las computadoras convencionales tienen un período de reloj necesario para completar una operación, que normalmente comienza y termina con la lectura o escritura de la memoria. Por lo tanto, las líneas de retardo tenían que cronometrarse de manera que los pulsos llegaran al receptor justo cuando la computadora estuviera lista para leerlos. Muchos pulsos estarían en tránsito durante el retardo y la computadora contaría los pulsos comparándolos con un reloj maestro para encontrar el bit en particular que estaba buscando.
Se utilizó mercurio porque su impedancia acústica es cercana a la de los cristales de cuarzo piezoeléctricos ; esto minimizaba la pérdida de energía y los ecos cuando la señal se transmitía del cristal al medio y viceversa. La alta velocidad del sonido en mercurio (1450 m/s) significaba que el tiempo necesario para esperar a que un pulso llegara al extremo receptor era menor de lo que habría sido con un medio más lento, como el aire (343,2 m/s), pero también significaba que el número total de pulsos que se podían almacenar en cualquier columna de mercurio de tamaño razonable era limitado. Otros inconvenientes técnicos del mercurio incluían su peso, su costo y su toxicidad. Además, para lograr que las impedancias acústicas coincidieran lo más posible, el mercurio tenía que mantenerse a una temperatura constante. El sistema calentaba el mercurio a un ajuste uniforme por encima de la temperatura ambiente de 40 °C (104 °F), lo que hacía que el mantenimiento de los tubos fuera un trabajo caluroso e incómodo. ( Alan Turing propuso el uso de ginebra como medio de retardo ultrasónico, afirmando que tenía las propiedades acústicas necesarias. [3] )
Se necesitó una cantidad considerable de ingeniería para mantener una señal limpia dentro del tubo. Se utilizaron grandes transductores para generar un haz de sonido muy estrecho que no tocara las paredes del tubo, y se tuvo cuidado de eliminar los reflejos del extremo más alejado de los tubos. La estrechez del haz requirió entonces un ajuste considerable para asegurarse de que ambos transductores apuntaran directamente el uno al otro. Dado que la velocidad del sonido cambia con la temperatura, los tubos se calentaban en grandes hornos para mantenerlos a una temperatura precisa. Otros sistemas [ especificar ] en cambio ajustaban la frecuencia del reloj de la computadora según la temperatura ambiente para lograr el mismo efecto.
EDSAC , la segunda computadora digital de programa almacenado a gran escala , comenzó a funcionar con 256 palabras de memoria de 35 bits , almacenadas en 16 líneas de retardo que contenían 560 bits cada una (las palabras en la línea de retardo se componían de 36 pulsos, un pulso se usaba como espacio entre números consecutivos). [4] La memoria se amplió más tarde a 512 palabras añadiendo un segundo conjunto de 16 líneas de retardo. En la UNIVAC I, la capacidad de una línea de retardo individual era menor, cada columna almacenaba 120 bits, lo que requería siete unidades de memoria grandes con 18 columnas cada una para formar un almacenamiento de 1000 palabras. Combinado con sus circuitos de soporte y amplificadores , el subsistema de memoria formaba su propia sala de acceso . El tiempo de acceso promedio era de unos 222 microsegundos , lo que era considerablemente más rápido que los sistemas mecánicos utilizados en computadoras anteriores.
CSIRAC , completado en noviembre de 1949, también utilizó memoria de línea de retardo.
Algunos dispositivos de memoria de línea de retardo de mercurio producían sonidos audibles, que se describían como similares a una voz humana murmurando. Esta propiedad dio origen al término coloquial "mumble-tub" para estos dispositivos.
Una versión posterior de la línea de retardo utilizaba cables de acero como medio de almacenamiento. Los transductores se construían aplicando el efecto magnetoestrictivo ; pequeñas piezas de un material magnetoestrictivo, normalmente níquel , se fijaban a cada lado del extremo del cable, dentro de un electroimán . Cuando los bits de la computadora entraban en los imanes, el níquel se contraía o se expandía (según la polaridad) y torcía el extremo del cable. La onda torsional resultante se desplazaba entonces por el cable tal como lo hacía la onda de sonido por la columna de mercurio.
A diferencia de las ondas compresivas utilizadas en dispositivos anteriores, las ondas torsionales son considerablemente más resistentes a los problemas causados por imperfecciones mecánicas, tanto que los cables se podían enrollar en una bobina suelta y fijar a una placa. Debido a su capacidad para enrollarse, los sistemas basados en cables podían ser tan largos como fuera necesario, por lo que tendían a contener considerablemente más datos por unidad; las unidades de 1 kbit eran típicas en una placa de solo 1 pie cuadrado ( ~30 cm × 30 cm ). Por supuesto, esto también significaba que el tiempo necesario para encontrar un bit en particular era algo más largo a medida que viajaba a través del cable, y los tiempos de acceso del orden de 500 microsegundos eran típicos.
La memoria de línea de retardo era mucho menos costosa y mucho más confiable por bit que los flip-flops hechos de tubos , y aún así mucho más rápida que un relé de enclavamiento . Se utilizó hasta fines de la década de 1960, especialmente en máquinas comerciales como LEO I , Highgate Wood Telephone Exchange , varias máquinas Ferranti y el IBM 2848 Display Control . La memoria de línea de retardo también se utilizó para la memoria de video en los primeros terminales, donde una línea de retardo generalmente almacenaba 4 líneas de caracteres (4 líneas × 40 caracteres por línea × 6 bits por carácter = 960 bits en una línea de retardo). También se utilizaron con mucho éxito en varios modelos de calculadoras electrónicas de escritorio tempranas , incluidas la Friden EC-130 (1964) y EC-132, la calculadora programable de escritorio Olivetti Programma 101 presentada en 1965 y las calculadoras programables Litton Monroe Epic 2000 y 3000 de 1967.
Una solución similar al sistema magnetoestrictivo consistía en utilizar líneas de retardo fabricadas íntegramente con un material piezoeléctrico , normalmente cuarzo. La corriente aplicada a un extremo del cristal generaba una onda compresiva que fluía hacia el otro extremo, donde podía leerse. En efecto, el material piezoeléctrico simplemente sustituía al mercurio y a los transductores de una línea de retardo de mercurio convencional por una única unidad que combinaba ambos. Sin embargo, estas soluciones eran bastante raras; no era fácil cultivar cristales de la calidad requerida en grandes tamaños, lo que los limitaba a tamaños pequeños y, por tanto, a pequeñas cantidades de almacenamiento de datos. [5]
Un uso mejor y más extendido de las líneas de retardo piezoeléctricas se produjo en los televisores europeos. El estándar europeo PAL para transmisiones en color compara la señal de dos líneas sucesivas de la imagen para evitar cambios de color debido a pequeños cambios de fase. Al comparar dos líneas, una de las cuales está invertida, se promedia el cambio y la señal resultante coincide más estrechamente con la señal original, incluso en presencia de interferencias. Para comparar las dos líneas, se inserta una unidad de retardo piezoeléctrica para retrasar la señal durante un tiempo que es igual a la duración de cada línea, 64 μs, en una de las dos rutas de señal que se comparan. [6] Para producir el retardo requerido en un cristal de tamaño conveniente, la unidad de retardo está diseñada para reflejar la señal varias veces a través del cristal, lo que reduce en gran medida el tamaño requerido del cristal y produce así un dispositivo pequeño y de forma rectangular.
Las líneas de retardo eléctricas se utilizan para tiempos de retardo más cortos (de nanosegundos a varios microsegundos). Consisten en una línea eléctrica larga o están hechas de inductores y condensadores discretos dispuestos en cadena. Para acortar la longitud total de la línea, se puede enrollar alrededor de un tubo de metal, obteniendo algo más de capacitancia contra tierra y también más inductancia debido a los devanados de cable, que se encuentran cerca entre sí.
Otros ejemplos son:
Otra forma de crear un tiempo de retardo es implementar una línea de retardo en un dispositivo de almacenamiento de circuito integrado . Esto se puede hacer digitalmente o con un método analógico de tiempo discreto. El analógico utiliza dispositivos de transferencia de carga (ya sean dispositivos de brigada de cubos o dispositivos acoplados a carga ), que transportan una carga eléctrica almacenada paso a paso de un extremo al otro. [7] Tanto los métodos digitales como los analógicos están limitados por el ancho de banda en el extremo superior a la mitad de la frecuencia de reloj, que determina los pasos de transporte.
En las computadoras modernas que funcionan a velocidades de gigahercios, las diferencias milimétricas en la longitud de los conductores en un bus de datos paralelo pueden causar una desviación de los bits de datos, lo que puede provocar la corrupción de los datos o una reducción del rendimiento del procesamiento. Esto se soluciona haciendo que todas las rutas de los conductores tengan una longitud similar, lo que retrasa el tiempo de llegada para lo que de otro modo serían distancias de viaje más cortas mediante el uso de trazos en zigzag.
En el campo de la computación óptica, una línea de retardo óptica se puede utilizar de manera similar a como se utilizaban las líneas de retardo acústicas o eléctricas. [8]