En informática , la memoria de núcleo magnético es una forma de memoria de acceso aleatorio . Predominó durante aproximadamente 20 años entre 1955 y 1975, y a menudo se la denomina simplemente memoria de núcleo o, informalmente, núcleo .
La memoria central utiliza toroides (anillos) de un material magnético duro (normalmente una ferrita semidura ). Cada núcleo almacena un bit de información. Dos o más cables pasan por cada núcleo, formando una matriz XY de núcleos. Cuando se aplica una corriente eléctrica por encima de un cierto umbral a los cables, el núcleo se magnetiza. El núcleo al que se le asignará un valor (o se escribirá ) se selecciona alimentando un cable X y un cable Y a la mitad de la potencia requerida, de modo que solo se escriba el núcleo único en la intersección. Dependiendo de la dirección de las corrientes, el núcleo captará un campo magnético en el sentido de las agujas del reloj o en el sentido contrario, almacenando un 1 o un 0.
Este proceso de escritura también hace que se induzca electricidad en los cables cercanos. Si el nuevo pulso que se aplica en los cables XY es el mismo que el último aplicado a ese núcleo, el campo existente no hará nada y no se producirá ninguna inducción. Si el nuevo pulso está en la dirección opuesta, se generará un pulso. Este normalmente se capta en un cable "detección" separado, lo que permite al sistema saber si ese núcleo contenía un 1 o un 0. Como este proceso de lectura requiere que se escriba en el núcleo, este proceso se conoce como lectura destructiva y requiere circuitos adicionales para restablecer el núcleo a su valor original si el proceso lo invirtió.
Cuando no se leen ni escriben, los núcleos mantienen el último valor que tenían, incluso si se apaga la alimentación. Por lo tanto, son un tipo de memoria no volátil . Dependiendo de cómo se haya cableado, la memoria de núcleo podría ser excepcionalmente confiable. La memoria de núcleo de cuerda de solo lectura , por ejemplo, se utilizó en la computadora de guía de misión crítica Apollo , esencial para los exitosos alunizajes de la NASA . [1]
Al utilizar núcleos y cables más pequeños, la densidad de memoria de los núcleos aumentó lentamente. A finales de los años 60, la densidad típica era de unos 32 kilobits por pie cúbico (unos 0,9 kilobits por litro). El coste se redujo durante este período de aproximadamente 1 dólar por bit a aproximadamente 1 centavo por bit. Alcanzar esta densidad requiere una fabricación extremadamente cuidadosa, que casi siempre se llevaba a cabo a mano a pesar de los repetidos esfuerzos importantes por automatizar el proceso. Los núcleos eran casi universales hasta la introducción de los primeros chips de memoria semiconductores a finales de los años 60, y especialmente la memoria dinámica de acceso aleatorio (DRAM) a principios de los años 70. Inicialmente, con un precio similar al del núcleo, la DRAM era más pequeña y más sencilla de utilizar. El núcleo fue retirado del mercado gradualmente entre 1973 y 1978.
Aunque la memoria central está obsoleta, a la memoria de la computadora todavía se la llama "núcleo" a pesar de que está hecha de semiconductores, en particular por personas que han trabajado con máquinas que tenían memoria central real. Los archivos que resultan de guardar todo el contenido de la memoria en el disco para su inspección, lo que hoy en día se realiza de manera automática cuando ocurre un error importante en un programa de computadora, todavía se denominan " volcados de núcleo ". Los algoritmos que funcionan con más datos de los que puede almacenar la memoria principal también se denominan algoritmos fuera del núcleo . Los algoritmos que solo funcionan dentro de la memoria principal a veces se denominan algoritmos en el núcleo.
El concepto básico de utilizar el bucle de histéresis cuadrado de ciertos materiales magnéticos como dispositivo de almacenamiento o conmutación se conocía desde los primeros días del desarrollo de las computadoras. Gran parte de este conocimiento se había desarrollado debido a la comprensión de los transformadores , que permitían la amplificación y el rendimiento similar al de un interruptor cuando se construían utilizando ciertos materiales. El comportamiento de conmutación estable era bien conocido en el campo de la ingeniería eléctrica , y su aplicación en los sistemas informáticos fue inmediata. Por ejemplo, J. Presper Eckert y Jeffrey Chuan Chu habían realizado un trabajo de desarrollo sobre el concepto en 1945 en la Escuela Moore durante los esfuerzos de ENIAC . [2]
El pionero de la robótica George Devol presentó una patente [3] para la primera memoria magnética estática (sin movimiento) el 3 de abril de 1946. La memoria magnética de Devol se perfeccionó aún más mediante 5 patentes adicionales [4] [5] [6] [7] [8] y finalmente se utilizó en el primer robot industrial . Frederick Viehe solicitó varias patentes sobre el uso de transformadores para construir circuitos lógicos digitales en lugar de lógica de relé a partir de 1947. Un sistema central completamente desarrollado fue patentado en 1947, y luego comprado por IBM en 1956. [9] Sin embargo, este desarrollo era poco conocido y el desarrollo general del núcleo normalmente se asocia con tres equipos independientes.
Los físicos estadounidenses An Wang y Way-Dong Woo, nacidos en Shanghái , realizaron un trabajo sustancial en este campo y crearon el dispositivo de control de transferencia de pulsos en 1949. [10] La patente describía un tipo de memoria que hoy se conocería como un sistema de línea de retardo o registro de desplazamiento . Cada bit se almacenaba utilizando un par de transformadores, uno que contenía el valor y un segundo utilizado para el control. Un generador de señales producía una serie de pulsos que se enviaban a los transformadores de control con la mitad de la energía necesaria para invertir la polaridad. Los pulsos se cronometraban de modo que el campo en los transformadores no se hubiera desvanecido antes de que llegara el siguiente pulso. Si el campo del transformador de almacenamiento coincidía con el campo creado por el pulso, entonces la energía total haría que se inyectara un pulso en el siguiente par de transformadores. Aquellos que no contenían un valor simplemente se desvanecían. De este modo, los valores almacenados se movían bit a bit a lo largo de la cadena con cada pulso. Los valores se leían al final y se devolvían al inicio de la cadena para mantener los valores en constante ciclo a través del sistema. [11] Estos sistemas tienen la desventaja de no ser de acceso aleatorio, y para leer un valor en particular hay que esperar a que pase por la cadena. Wang y Woo trabajaban en el Laboratorio de Computación de la Universidad de Harvard en ese momento, y la universidad no estaba interesada en promover inventos creados en sus laboratorios. Wang pudo patentar el sistema por su cuenta.
El Proyecto Whirlwind del MIT requería un sistema de memoria rápido para el seguimiento de aeronaves en tiempo real . Al principio, se utilizó una matriz de tubos Williams (un sistema de almacenamiento basado en tubos de rayos catódicos ), pero resultó inestable y poco fiable. A finales de la década de 1940, varios investigadores concibieron la idea de utilizar núcleos magnéticos para la memoria de la computadora, pero el ingeniero informático del MIT Jay Forrester recibió la patente principal por su invención de la memoria de núcleo de corriente coincidente que permitía el almacenamiento de información en 3D. [12] [13] William Papian, del Proyecto Whirlwind, citó uno de estos esfuerzos, la "línea de retardo magnético estático" de Harvard, en un memorando interno. La primera memoria de núcleo de 32 × 32 × 16 bits se instaló en Whirlwind en el verano de 1953. Papian afirmó: "El almacenamiento de núcleo magnético tiene dos grandes ventajas: (1) mayor confiabilidad con la consiguiente reducción en el tiempo de mantenimiento dedicado al almacenamiento; (2) menor tiempo de acceso (el tiempo de acceso al núcleo es de 9 microsegundos: el tiempo de acceso al tubo es de aproximadamente 25 microsegundos) aumentando así la velocidad de operación de la computadora". [14]
En abril de 2011, Forrester recordó: "El uso de núcleos por parte de Wang no tuvo ninguna influencia en mi desarrollo de la memoria de acceso aleatorio. La memoria de Wang era cara y complicada. Según recuerdo, lo que puede no ser del todo correcto, utilizaba dos núcleos por bit binario y era esencialmente una línea de retardo que se movía un bit hacia adelante. En la medida en que me concentré en ella, el enfoque no era adecuado para nuestros propósitos". Describe la invención y los eventos asociados en 1975. [15] Forrester ha observado desde entonces: "Nos llevó unos siete años convencer a la industria de que la memoria de núcleo magnético de acceso aleatorio era la solución a un eslabón perdido en la tecnología informática. Luego pasamos los siete años siguientes en los tribunales de patentes convenciéndolos de que no todos habían pensado en ello primero". [16]
Un tercer desarrollador involucrado en el desarrollo inicial del núcleo fue Jan A. Rajchman de RCA . Un inventor prolífico, Rajchman diseñó un sistema de núcleo único utilizando bandas de ferrita envueltas alrededor de tubos de metal delgados, [17] construyendo sus primeros ejemplos utilizando una prensa de aspirinas modificada en 1949. [9] Rajchman luego desarrolló versiones del tubo Williams y lideró el desarrollo del Selectron . [18]
Dos inventos clave llevaron al desarrollo de la memoria de núcleo magnético en 1951. El primero, de An Wang, fue el ciclo de escritura después de lectura, que resolvió el problema de cómo utilizar un medio de almacenamiento en el que el acto de lectura borraba los datos leídos, lo que permitió la construcción de un registro de desplazamiento unidimensional en serie (de 50 bits), utilizando dos núcleos para almacenar un bit. Un registro de desplazamiento de núcleo de Wang se encuentra en la exhibición Revolution en el Museo de Historia de la Computación . El segundo, de Forrester, fue el sistema de corriente coincidente, que permitió que una pequeña cantidad de cables controlaran una gran cantidad de núcleos, lo que permitió matrices de memoria 3D de varios millones de bits. El primer uso del núcleo magnético fue en la computadora Whirlwind, [19] y la "contribución más famosa del Proyecto Whirlwind fue la característica de almacenamiento de núcleo magnético de acceso aleatorio". [20] La comercialización siguió rápidamente. El núcleo magnético se utilizó en los periféricos del ENIAC en 1953, [21] el IBM 702 [22] entregado en julio de 1955, y más tarde en el propio 702. El IBM 704 (1954) y el Ferranti Mercury (1957) utilizaron memoria de núcleo magnético.
Fue a principios de la década de 1950 que Seeburg Corporation desarrolló una de las primeras aplicaciones comerciales del almacenamiento de memoria de núcleo de corriente coincidente en la memoria "Tormat" de su nueva gama de jukeboxes , comenzando con el V200 desarrollado en 1953 y lanzado en 1955. [23] Siguieron numerosos usos en informática, telefonía y control de procesos industriales .
La patente de Wang no fue otorgada hasta 1955, y para ese entonces la memoria de núcleo magnético ya estaba en uso. Esto dio inicio a una larga serie de demandas, que finalmente terminaron cuando IBM compró la patente directamente a Wang por US$500.000 . [24] Wang utilizó los fondos para expandir en gran medida Wang Laboratories , que había cofundado con el Dr. Ge-Yao Chu, un compañero de escuela de China.
El MIT quería cobrar a IBM 0,02 dólares por bit de memoria de núcleo. En 1964, tras años de disputas legales, IBM pagó al MIT 13 millones de dólares por los derechos de la patente de Forrester, el mayor acuerdo de patentes hasta la fecha. [25] [26]
En 1953, los núcleos probados pero aún no encadenados costaban 0,33 dólares cada uno. A medida que el volumen de fabricación aumentó, en 1970 IBM producía 20 mil millones de núcleos por año, y el precio por núcleo cayó a 0,0003 dólares . Los tamaños de los núcleos se redujeron durante el mismo período de alrededor de 0,1 pulgadas (2,5 mm) de diámetro en la década de 1950 a 0,013 pulgadas (0,33 mm) en 1966. [27] La potencia necesaria para invertir la magnetización de un núcleo es proporcional al volumen, por lo que esto representa una caída en el consumo de energía por un factor de 125.
El costo de los sistemas de memoria de núcleo completos dependía en gran medida del costo de pasar los cables a través de los núcleos. El sistema de corriente coincidente de Forrester requería que uno de los cables se colocara a 45 grados de los núcleos, lo que resultó difícil de conectar a máquina, por lo que los conjuntos de núcleos debían ser ensamblados bajo microscopios por trabajadores con control motor fino.
En 1956, un grupo de IBM presentó una solicitud de patente para una máquina que enhebraba automáticamente los primeros cables a través de cada núcleo. Esta máquina sostenía el plano completo de núcleos en un "nido" y luego empujaba una serie de agujas huecas a través de los núcleos para guiar los cables. [28] El uso de esta máquina redujo el tiempo necesario para enhebrar las líneas de selección X e Y rectas de 25 horas a 12 minutos en una matriz de núcleos de 128 por 128. [29]
Los núcleos más pequeños hicieron que el uso de agujas huecas fuera poco práctico, pero hubo numerosos avances en el enhebrado de núcleos semiautomático. Se desarrollaron nidos de soporte con canales guía. Los núcleos se adherían permanentemente a un "parche" de lámina de soporte que los sostenía durante la fabricación y el uso posterior. Las agujas de enhebrado se soldaban a tope a los alambres, los diámetros de las agujas y los alambres eran los mismos y se hicieron esfuerzos para eliminar el uso de agujas. [30] [31]
El cambio más importante, desde el punto de vista de la automatización, fue la combinación de los cables de detección e inhibición, eliminando la necesidad de un cable de detección diagonal tortuoso. Con pequeños cambios en el diseño, esto también permitió un empaquetamiento mucho más compacto de los núcleos en cada parche. [32] [33]
A principios de los años 1960, el coste de los núcleos se redujo hasta el punto de que se convirtieron en memorias principales casi universales, reemplazando tanto a las memorias de tambor de bajo rendimiento y de bajo costo como a los costosos sistemas de alto rendimiento que utilizaban tubos de vacío y, más tarde, transistores discretos como memoria. El coste de las memorias de núcleo se redujo drásticamente durante la vida útil de la tecnología: los costes comenzaron en aproximadamente 1 dólar estadounidense por bit y bajaron a aproximadamente 0,01 dólar estadounidense por bit.
La memoria central quedó obsoleta debido a las memorias de circuitos integrados de semiconductores en la década de 1970, aunque siguió utilizándose para aplicaciones de misión crítica y alta confiabilidad en el IBM System/4 Pi AP-101 (usado en el transbordador espacial hasta una actualización a principios de la década de 1990, y en los bombarderos B-52 y B-1B ). [34] [35] [36]
Un ejemplo de la escala, la economía y la tecnología de la memoria central en la década de 1960 fue la unidad de memoria central de 256K de 36 bits (1,2 MiB [37] ) instalada en el PDP-6 en el Laboratorio de Inteligencia Artificial del MIT en 1967. [38] En su momento, se la consideró "inimaginablemente enorme" y se la apodó "Memoria Moby". [39] Costaba 380.000 dólares (0,04 dólares por bit) y su anchura, altura y profundidad eran de 175 cm × 127 cm × 64 cm (69 pulgadas × 50 pulgadas × 25 pulgadas) con su circuito de apoyo (189 kilobits/pie cúbico = 6,7 kilobits/litro). Su tiempo de ciclo era de 2,75 μs. [40] [41] [42]
En 1980, el precio de una placa de memoria de 16 kW ( kilopalabra , equivalente a 32 kB) que se instalaba en un ordenador DEC Q-bus rondaba los 3.000 dólares estadounidenses . En aquel momento, el conjunto de núcleos y la electrónica de apoyo podían caber en una única placa de circuito impreso de unos 25 cm × 20 cm (10 pulgadas × 8 pulgadas) de tamaño; el conjunto de núcleos se montaba unos pocos mm por encima de la PCB y se protegía con una placa de metal o plástico. [ cita requerida ]
El término "núcleo" proviene de los transformadores convencionales cuyos devanados rodean un núcleo magnético . En la memoria de núcleo, los cables pasan una vez a través de cualquier núcleo dado: son dispositivos de una sola vuelta. Las propiedades de los materiales utilizados para los núcleos de memoria son drásticamente diferentes de las utilizadas en los transformadores de potencia. El material magnético para una memoria de núcleo requiere un alto grado de remanencia magnética , la capacidad de permanecer altamente magnetizado y una baja coercitividad para que se requiera menos energía para cambiar la dirección de magnetización. El núcleo puede tomar dos estados, codificando un bit . El contenido de la memoria del núcleo se conserva incluso cuando se apaga el sistema de memoria ( memoria no volátil ). Sin embargo, cuando se lee el núcleo, se restablece a un valor "cero". Los circuitos en el sistema de memoria de la computadora luego restauran la información en un ciclo de reescritura inmediato.
La forma más común de memoria de núcleo, la línea X/Y de corriente coincidente , utilizada para la memoria principal de una computadora, consiste en una gran cantidad de pequeñas ferritas cerámicas ferromagnéticas toroidales ( núcleos ) unidas en una estructura de rejilla (organizada como una "pila" de capas llamadas planos ), con cables tejidos a través de los agujeros en los centros de los núcleos. En los primeros sistemas había cuatro cables: X , Y , Sense e Inhibit , pero los núcleos posteriores combinaron los dos últimos cables en una línea Sense/Inhibit . [32] Cada toroide almacenaba un bit (0 o 1). Se podía acceder a un bit en cada plano en un ciclo, por lo que cada palabra de máquina en una matriz de palabras se distribuía en una "pila" de planos. Cada plano manipularía un bit de una palabra en paralelo , lo que permitiría leer o escribir la palabra completa en un ciclo.
El núcleo se basa en las propiedades de bucle de histéresis cuadrada del material de ferrita utilizado para hacer los toroides. Una corriente eléctrica en un cable que pasa a través de un núcleo crea un campo magnético. Solo un campo magnético mayor que una cierta intensidad ("selección") puede hacer que el núcleo cambie su polaridad magnética. Para seleccionar una ubicación de memoria, una de las líneas X y una de las Y se activan con la mitad de la corriente ("selección media") necesaria para provocar este cambio. Solo el campo magnético combinado generado donde se cruzan las líneas X e Y (la conjunción lógica ) es suficiente para cambiar el estado; otros núcleos verán solo la mitad del campo necesario ("selección media"), o ninguno en absoluto. Al conducir la corriente a través de los cables en una dirección particular, el campo inducido resultante obliga al flujo magnético del núcleo seleccionado a circular en una dirección u otra (en el sentido de las agujas del reloj o en sentido contrario). Una dirección es un 1 almacenado , mientras que la otra es un 0 almacenado .
La forma toroidal de un núcleo es la preferida porque el camino magnético es cerrado, no hay polos magnéticos y, por lo tanto, hay muy poco flujo externo. Esto permite que los núcleos se junten estrechamente sin que sus campos magnéticos interactúen. La posición alternada de 45 grados utilizada en los primeros conjuntos de núcleos fue necesaria debido a los cables de detección diagonales. Con la eliminación de estos cables diagonales, fue posible un empaquetamiento más compacto. [33]
El tiempo de acceso más el tiempo de reescritura es el tiempo del ciclo de memoria .
Para leer un bit de la memoria central, el circuito intenta cambiar el bit a la polaridad asignada al estado 0, activando las líneas X e Y seleccionadas que se cruzan en ese núcleo.
La detección de dicho pulso significa que el bit había contenido recientemente un 1. La ausencia del pulso significa que el bit había contenido un 0. El retraso en la detección del pulso de voltaje se denomina tiempo de acceso a la memoria central.
Después de cualquier lectura de este tipo, el bit contiene un 0. Esto ilustra por qué un acceso a la memoria del núcleo se denomina lectura destructiva : cualquier operación que lea el contenido de un núcleo borra ese contenido y debe volver a crearse inmediatamente.
Para escribir un bit de memoria central, el circuito supone que ha habido una operación de lectura y que el bit está en el estado 0.
El cable de detección se utiliza únicamente durante la lectura y el cable de inhibición se utiliza únicamente durante la escritura. Por este motivo, los sistemas centrales posteriores combinaron los dos en un solo cable y utilizaron circuitos en el controlador de memoria para cambiar la función del cable.
Sin embargo, cuando el cable Sense cruza demasiados núcleos, la corriente de selección a la mitad también puede inducir un voltaje considerable en toda la línea debido a la superposición del voltaje en cada núcleo individual. Este riesgo potencial de "lectura incorrecta" limita la cantidad mínima de cables Sense.
Aumentar los cables Sense también requiere más circuitos de decodificación.
Los controladores de memoria central se diseñaron de modo que cada lectura fuera seguida inmediatamente por una escritura (porque la lectura obligaba a que todos los bits se pusieran a 0 y porque la escritura suponía que esto había sucedido). Los conjuntos de instrucciones se diseñaron para aprovechar esto.
Por ejemplo, un valor en la memoria podía leerse y modificarse casi tan rápido como podía leerse y escribirse. En el PDP-6 , las instrucciones AOS*
(o SOS*
) incrementaban (o decrementaban) el valor entre la fase de lectura y la fase de escritura de un solo ciclo de memoria (quizás indicando al controlador de memoria que hiciera una breve pausa en medio del ciclo). Esto podría ser el doble de rápido que el proceso de obtener el valor con un ciclo de lectura-escritura, incrementar (o decrementar) el valor en algún registro del procesador y luego escribir el nuevo valor con otro ciclo de lectura-escritura.
La memoria de núcleo de línea de palabra se usaba a menudo para proporcionar memoria de registro. Otros nombres para este tipo son selección lineal y 2-D . Esta forma de memoria de núcleo generalmente tejía tres cables a través de cada núcleo en el plano, lectura de palabra , escritura de palabra y detección/escritura de bit . Para leer o borrar palabras, se aplica la corriente completa a una o más líneas de lectura de palabra ; esto borra los núcleos seleccionados y cualquiera que induzca pulsos de voltaje en sus líneas de detección/escritura de bit . Para leer, normalmente solo se seleccionaría una línea de lectura de palabra ; pero para borrar, se podrían seleccionar múltiples líneas de lectura de palabra mientras se ignoran las líneas de detección/escritura de bit . Para escribir palabras, se aplica la mitad de la corriente a una o más líneas de escritura de palabra , y la mitad de la corriente se aplica a cada línea de detección/escritura de bit para que se establezca un bit. En algunos diseños, las líneas de lectura de palabra y escritura de palabra se combinaron en un solo cable, lo que resultó en una matriz de memoria con solo dos cables por bit. Para escribir, se podrían seleccionar múltiples líneas de escritura de palabra . Esto ofrecía una ventaja de rendimiento sobre la corriente coincidente de la línea X/Y , ya que se podían borrar o escribir varias palabras con el mismo valor en un solo ciclo. El conjunto de registros de una máquina típica solía utilizar solo un pequeño plano de esta forma de memoria central. Se construyeron algunas memorias muy grandes con esta tecnología, por ejemplo, la memoria auxiliar de almacenamiento central extendido (ECS) en el CDC 6600 , que tenía hasta 2 millones de palabras de 60 bits.
La memoria de núcleo es una forma de memoria de solo lectura (ROM) de memoria de núcleo. En este caso, los núcleos, que tenían materiales magnéticos más lineales, se usaban simplemente como transformadores ; en realidad, no se almacenaba información magnéticamente dentro de los núcleos individuales. Cada bit de la palabra tenía un núcleo. La lectura del contenido de una dirección de memoria dada generaba un pulso de corriente en un cable correspondiente a esa dirección. Cada cable de dirección se enhebraba a través de un núcleo para significar un binario [1], o alrededor del exterior de ese núcleo, para significar un binario [0]. Como se esperaba, los núcleos eran físicamente mucho más grandes que los de la memoria de núcleo de lectura y escritura. Este tipo de memoria era excepcionalmente confiable. Un ejemplo fue la computadora de guía Apollo utilizada para los alunizajes de la NASA .
El rendimiento de las primeras memorias de núcleo se puede caracterizar en términos actuales como muy comparable a una velocidad de reloj de 1 MHz (equivalente a las computadoras domésticas de principios de la década de 1980, como el Apple II y el Commodore 64 ). Los primeros sistemas de memoria de núcleo tenían tiempos de ciclo de aproximadamente 6 μs , que habían caído a 1,2 μs a principios de la década de 1970, y a mediados de la década de 1970 había bajado a 600 ns (0,6 μs). Algunos diseños tenían un rendimiento sustancialmente mayor: el CDC 6600 tenía un tiempo de ciclo de memoria de 1,0 μs en 1964, utilizando núcleos que requerían una corriente de media selección de 200 mA. [43] Se hizo todo lo posible para disminuir los tiempos de acceso y aumentar las velocidades de datos (ancho de banda), incluido el uso simultáneo de múltiples cuadrículas de núcleo, cada una almacenando un bit de una palabra de datos. Por ejemplo, una máquina podría utilizar 32 cuadrículas de núcleo con un solo bit de la palabra de 32 bits en cada una, y el controlador podría acceder a toda la palabra de 32 bits en un solo ciclo de lectura/escritura.
La memoria de núcleo es un almacenamiento no volátil : puede retener su contenido indefinidamente sin energía. También es relativamente inafectada por EMP y radiación. Estas fueron ventajas importantes para algunas aplicaciones como controladores programables industriales de primera generación , instalaciones militares y vehículos como aviones de combate , así como naves espaciales , y llevaron a que el núcleo se usara durante varios años después de la disponibilidad de la memoria MOS de semiconductores (ver también MOSFET ). Por ejemplo, las computadoras de vuelo IBM AP-101B del transbordador espacial usaban memoria de núcleo, que preservó el contenido de la memoria incluso durante la desintegración y posterior caída al mar del Challenger en 1986. [44]
Otra característica de los primeros núcleos era que la fuerza coercitiva era muy sensible a la temperatura; la corriente de semiselección adecuada a una temperatura no es la corriente de semiselección adecuada a otra temperatura. Por lo tanto, un controlador de memoria incluiría un sensor de temperatura (normalmente un termistor ) para ajustar los niveles de corriente correctamente a los cambios de temperatura. Un ejemplo de esto es la memoria de núcleo utilizada por Digital Equipment Corporation para su computadora PDP-1 ; esta estrategia continuó a través de todos los sistemas de memoria de núcleo posteriores construidos por DEC para su línea PDP de computadoras refrigeradas por aire.
Otro método para manejar la sensibilidad de la temperatura era encerrar la "pila" del núcleo magnético en un horno de temperatura controlada. Ejemplos de esto son la memoria del núcleo de aire caliente del IBM 1620 (que podía tardar hasta 30 minutos en alcanzar la temperatura de funcionamiento , aproximadamente 106 °F (41 °C) y la memoria del núcleo con baño de aceite caliente del IBM 7090 , los primeros IBM 7094 y el IBM 7030. El núcleo se calentaba en lugar de enfriarse porque el requisito principal era una temperatura constante y era más fácil (y más barato) mantener una temperatura constante muy por encima de la temperatura ambiente que una a la misma o por debajo de ella.
El diagnóstico de problemas de hardware en la memoria central requería la ejecución de programas de diagnóstico que consumían mucho tiempo. Mientras que una prueba rápida verificaba si cada bit podía contener un uno y un cero, estos diagnósticos probaban la memoria central con patrones del peor caso y tenían que ejecutarse durante varias horas. Como la mayoría de las computadoras tenían una sola placa de memoria central, estos diagnósticos también se movían por la memoria, lo que hacía posible probar cada bit. Una prueba avanzada se llamaba " prueba Shmoo " en la que las corrientes de selección media se modificaban junto con el momento en el que se probaba la línea de detección ("strobed"). El gráfico de datos de esta prueba parecía parecerse a un personaje de dibujos animados llamado " Shmoo ", y el nombre se quedó. En muchas ocasiones, los errores se podían resolver golpeando suavemente la placa de circuito impreso con la matriz de núcleos sobre una mesa. Esto cambiaba ligeramente las posiciones de los núcleos a lo largo de los cables que los atravesaban y podía solucionar el problema. El procedimiento rara vez era necesario, ya que la memoria central demostró ser muy confiable en comparación con otros componentes de computadora de la época.
{{cite book}}
: |website=
ignorado ( ayuda )CS1 maint: location missing publisher (link)