Memoria a nucleo magnetico

Da Wikipedia, l'enciclopedia libera.
Parte dei 36 banchi di memoria a nuclei magnetici, residenti su scheda a doppia faccia, per un totale di 1.5 Megabit

La memoria a nucleo magnetico o memoria a nuclei di ferrite è una tipologia di memoria informatica non volatile. Questa utilizza piccoli anelli magnetici di ceramica per memorizzare le informazioni digitali, i dati sono memorizzati tramite la variazione della polarità del campo magnetico degli anelli. Queste memorie furono utilizzate nei primi computer prima della diffusione delle memorie a semiconduttori.

Storia[modifica | modifica sorgente]

Le prime ricerche sulle memorie a nuclei magnetici furono svolte da An Wang e Way-Dong Woo, due ricercatori statunitensi che svilupparono nel 1949 il pulse transfer controlling device. Il nome indica un dispositivo che tramite campo magnetico dovrebbe controllare l'attivazione di un sistema elettromeccanico. Wang e Woo lavoravano all'Università di Harvard, quest'università a differenza del MIT non era interessata a promuovere le invenzioni sviluppate internamente. Comunque Wang riuscì a farsi assegnare il brevetto dell'invenzione.

Intanto Jay Forrester presso il MIT stava sviluppando il computer Whirlwind ed era venuto a conoscenza delle ricerche di Wang e di Woo. Il computer Whirlwind richiedeva una memoria principale molto veloce (per l'epoca) per poter eseguire un simulatore di volo in tempo reale. Inizialmente Forrester aveva pensato di utilizzare i tubi Williams per la memoria principale, ma questi erano intrinsecamente inaffidabili e di difficile gestione.

Memoria a nucleo magnetico

Due invenzioni fondamentali portarono allo sviluppo delle memorie magnetiche e anche delle moderne memorie per computer. Una difficoltà era legata al fatto che l'accesso ai dati causava la cancellazione del contenuto letto dalla memoria: Wang risolse il problema associando ad ogni lettura anche una scrittura al fine di rimemorizzare i dati. Forrester nel contempo era riuscito a utilizzare un ridotto numero di collegamenti per gestire un ampio numero di nuclei magnetici.

Il progetto di Forrester richiedeva che uno dei fili attraversasse i nuclei magnetici con un'inclinazione di 45° gradi, questo non poteva essere eseguito in modo automatico dalle macchine e quindi le memorie vennero assemblate manualmente con l'ausilio di microscopio e di strumenti di precisione.

Alla fine degli anni cinquanta alcuni impianti industriali erano stati attivati nell'estremo oriente, in questi impianti lavoravano dei salariati che si accontentavano di stipendi molto modesti e questo permise di abbassare notevolmente il prezzo delle memorie. Questo permise alle memorie a nuclei magnetici negli anni sessanta di diventare la più diffusa memoria per computer sostituendo le economiche ma molto lente memorie a tamburo e le veloci ma costose memorie a valvole termoioniche. Alcune società utilizzarono anche lavoratori scandinavi che dopo le ristrutturazioni del settore tessile si trovavano senza lavoro.

All'inizio le memorie costavano circa un dollaro per elemento, ma verso la fine erano arrivate a costare circa un centesimo di dollaro per elemento. Queste memorie comunque vennero sostituite negli anni settanta dalle memorie a semiconduttori.

Il Dr. Wang riuscì ad avere il brevetto sulla sua scoperta solo nel 1955, a quell'epoca diverse società già utilizzavano quella tecnologia e quindi Wang avvio una serie di azioni legali per la violazione delle sue proprietà intellettuali. Nel 1956 IBM pagò 500,000 dollari a Wang per acquisire il brevetto e porre fine alle cause legali. Wang utilizzò i fondi per ingrandire i Wang Laboratories, un laboratorio di ricerca fondato con il Dr. Ge-Yao Chu. Successivamente nel 1964 sempre l'IBM acquisì dal MIT i brevetti che coprivano le scoperte di Forrester per 13 milioni di dollari.

Le memorie a nucleo magnetico facevano parte di una serie di tecnologie legate alle proprietà magnetiche dei materiali. Negli anni cinquanta erano state sviluppate le valvole termoioniche, questi erano dispositivi sofisticati da produrre, fragili, relativamente ingombranti e consumavano molta corrente. Le memorie a nucleo magnetico invece erano dispositivi piccoli, solidi e a basso consumo, spesso vennero utilizzate per applicazioni militari visto la loro robustezza. Un esempio famoso era il computer MOBIDIC sviluppato dalla Sylvania per la United States Army Signal Corps.

Descrizione[modifica | modifica sorgente]

Funzionamento delle memorie a nucleo magnetico[modifica | modifica sorgente]

Particolare di una memoria a nuclei magnetici, la distanza tra gli anelli è di 1 mm circa

Inizialmente i nuclei magnetici vennero realizzati con delle sostanze ceramiche ma in seguito la più comune forma di memoria a nucleo magnetico venne basto sulla ferrite disposti in anelli a griglia bidimensionale. Gli anelli erano percorsi da dei fili che servivano a portare i segnali di gestione della memoria. Nei primi sistemi si utilizzavano quattro fili; X,Y, Sense e Inibizione, in seguito la linea Sense e quella di inibizione furono combinate in una sola. Ogni anello memorizzava un singolo stato digitale, ogni griglia bidimensionale era accessibile in un solo ciclo di clock e permetteva la manipolazione di un singolo anello. Impilando in modo opportuno un certo numero di griglie si poteva ottenere la lettura o scrittura di una parola in un solo ciclo di clock.

Gli anelli magnetici basavano la loro capacità di memorizzare le informazioni sull'isteresi del materiale ferromagnetico, gli anelli sottoposti ad un certo campo magnetico tendevano a mantenere un certo stato magnetico fino a quando non sopraggiungeva un nuovo campo magnetico di adeguata intensità in grado di invertire il campo magnetico memorizzato dal materiale. Come detto, ogni anello era attraversato dalle linee X e Y: se si voleva scrivere un particolare anello si attivava la sua linea X e Y, solo quell'anello vedeva l'intero campo magnetico (somma di quello portato dalle linee X e Y) mentre gli altri anelli si trovavano a vedere solo metà campo magnetico o nessun campo magnetico. Quindi solo l'anello indirizzato si trovava ad essere interessato da un campo magnetico sufficiente per modificare la polarità del campo magnetico. La polarità del campo veniva definita dalla polarità della corrente che attraversava le linee X e Y. La corrente scorrendo nei fili induceva un campo elettromagnetico che combinandosi nell'anello ne alterava la polarità.

Scrittura e lettura[modifica | modifica sorgente]

La lettura in questo genere di memorie è un'operazione relativamente complessa. Sostanzialmente la lettura consiste nel portare a 0 il bit indirizzato per la lettura. Si pilotano le linee X e Y a metà potenza nella direzione che causa il campo magnetico che memorizza lo 0 nella memoria. Se la memoria è effettivamente a 0 non succede nulla ma se la memoria conteneva un campo magnetico se indicava il bit 1 allora sulla linea di Sense si sarebbe letto un breve impulso elettrico dovuto al cambio di polarità del nucleo magnetico. Quindi il gestore della memoria dopo aver indirizzato l'opportuna linea X e Y controllava la linea di Sense della memoria per verificare la presenza di 0 o 1, questa metodologia di lettura era distruttiva dato che alterava i dati portando sempre le memoria allo stato 0.

La scrittura seguiva un principio simile, tranne che la memoria viene sempre posta a 1. La scrittura parte dal presupposto che le celle siano già a 0 per via di una precedente lettura e attiva le linee X e Y al fine di produrre una variazione di campo magnetico che vari il campo magnetico del nucleo magnetico fino allo stato 1, se nella cella va effettivamente scritto 1 la procedura termina, se invece nella linea va posto il segnale 0 si impedisce la scrittura tramite la linea di inibizione. In questa linea viene fatta scorrere una piccola corrente in verso opposto che genera un campo magnetico opposto a quello generato dalle linee X e Y e che impedisce di modificare lo stato del nucleo lasciando quindi la memoria allo stato 0.

Dato che la linea di Sense e quella d'inibizione non venivano utilizzate contemporaneamente si decise di utilizzare una sola linea per entrambi le funzioni con un apposito circuito che commutava la funzione della linea a seconda che ci fosse una lettura o una scrittura.

Dato che ogni lettura richiedeva anche una scrittura molti computer si avvantaggiarono del fatto. I computer inclusero delle istruzioni in grado di mettere in pausa il processo di scrittura dopo quello di lettura. In questo modo se il computer doveva leggere e subito dopo scrivere la stessa cella di memoria poteva effettuare l'operazione in un solo passaggio. La memoria leggeva il dato, lo inviava al processore e si poneva in pausa. Il processore elaborava il dato e inviava in nuovo dato che veniva scritto direttamente dalla memoria durante l'operazione di scrittura necessaria per rigenerare lo stato della memoria. Questo permetteva di evitare una scrittura inutile velocizzando il computer.

Altri tipologie di memorie magnetiche[modifica | modifica sorgente]

Una variante delle memorie magnetiche basate sull'utilizzo di anelli posti lungo una linea (e non su una matrice come spiegato prima) vennero utilizzati per costruire dei registri per computer. Queste memorie erano dotate di linee di "word read" (lettura della parola), "word write" (scrittura della parola) e di linee di sense/write per ogni bit. Per leggere o cancellare la memoria si applicava la piena corrente alla linea di lettura della parola, questo azzerava i nuclei e produceva degli impulsi lungo le linee di sense/write se era presente un campo magnetico associato allo stato uno. Per scrivere il dato si poneva la linea di scrittura a metà potenza e e le linee di sense/write venivano poste a metà potenza su ogni nucleo che si voleva impostare a uno. Questa configurazione permetteva di leggere e scrive più bit in parallelo per piano e quindi era più rapida della struttura classica a matrice, inoltre utilizzando più linee di potevano leggere e scrivere più parole in contemporanea.

Un'altra forma di memoria a nucleo magnetico era la core rope memory. Questa memorie era di tipo ROM, in questa memoria i nuclei magnetici servivano solamente come dei mini trasformatori, la presenza o assenza di un filo all'interno del nucleo magnetico produceva un diverso segnale elettrico che veniva letto come zero o uno dalla memoria.

Caratteristiche fisiche[modifica | modifica sorgente]

Memoria a nuclei magnetici del CDC 6600

La velocità di queste memorie era dell'ordine del Megahertz (velocità analoga a quella dei computer degli anni ottanta come il Commodore 64 o l'Apple II), I primi sistemi avevano un tempo di lettura di 6 microsecondi, che in seguito venne ridotto fino a 1.2 microsecondi all'inizio degli anni settanta. Alla fine degli anni settanta si era arrivati ad avere dei modelli da 600 nanosecondi. Per rendere le memorie più veloci si potevano usare più griglie in parallelo in modo da effettuare letture e scritture simultanee.

Le memorie magnetiche mantenevano lo stato indefinitivamente anche senza alimentazione. Inoltre questa tipologia di memorie è relativamente poco soggetta agli impulsi elettromagnetici e alle radiazioni. Queste sono caratteristiche importanti nelle applicazioni spaziali e militari difatti queste memorie vennero utilizzate per molti anni in questi settori anche dopo la diffusione delle memorie a semiconduttori. Per esempio i computer dello Space Shuttle inizialmente utilizzavano questa tipologia di memorie. Le memorie magnetiche sopravvissero al disastro dello Space Shuttle Challenger e permisero alla commissione d'inchiesta di aver un resoconto su cosa misurò il computer prima dell'esplosione.

Una caratteristica di queste memorie è che sono pilotate in corrente e non in tensione come invece molti altri tipi di memoria. La selezione di un bit nelle memorie migliori richiedeva circa 400 mA, nelle memorie più lente e grandi la corrente richiesta era maggiore.

Una caratteristica delle memorie magnetiche è che il ciclo di isteresi è sensibile alla temperatura. Una variazione di temperatura richiedeva anche una variazione della corrente inserita nelle linee difatti i circuiti di gestione delle memorie includevano un sensore di temperatura al fine di fornire la giusta corrente alle linee. La DEC per i sistemi PDP utilizzava un sistema di condizionamento ad aria per mantenere la temperatura entro i limiti operativi. Altre società come IBM invece preferivano tenere le memorie a una temperatura di esercizio superiore a quella ambientale con dei riscaldatori, per esempio l'IBM 1620 utilizza dei riscaldatori che tenevano le memoria a 41° gradi e richiedevano fino a mezz'ora per andare in temperatura, sistemi come l'IBM 709, IBM 7090 e l'IBM 7030 invece utilizzano bagni d'olio per controllare la temperatura delle memorie.

Curiosità[modifica | modifica sorgente]

  • Le memorie a nucleo magnetico sono fragili, cercare di pulire queste memorie con l'utilizzo di aria compressa porta spesso alla rottura delle linee e alla dispersione dei nuclei magnetici.
  • Individuare problemi hardware nei banchi di memoria era un procedura lenta e complessa. Data la modalità di lettura e scrittura delle memorie per individuare errori nei banchi di memoria bisognava eseguire per ore particolari programmi che scrivevano e leggevano dalla memoria particolari schemi di zeri e uni. Spesso per riparare le memorie bastava spostare leggermente i nuclei magnetici. Comunque le memorie a nuclei magnetici erano abbastanza resistenti e quindi le operazioni di riparazione erano sporadiche.
  • Nel 1980 un banco da sedici mila parole (32 Kbyte) per il sistema DEC-Q costava circa 3000 dollari statunitensi. A quei tempi la memorie era un singolo circuito stampato di circa 25 x 20 cm sul quale veniva montato una protezione plastica o metallica per proteggere la memoria da urti accidentali.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Brevetti[modifica | modifica sorgente]

  • (EN) United States Patent 2667542, United States Patent and Trademark Office. "Electric connecting device" (matrix switch with iron cores), filed settembre 1951, issued January 1954
  • (EN) United States Patent 2708722, United States Patent and Trademark Office. "Pulse transfer controlling devices", An Wang filed ottobre 1949, issued maggio 1955
  • (EN) United States Patent 2736880, United States Patent and Trademark Office. "Multicoordinate digital information storage device" (coincident-current system), Jay Forrester filed maggio 1951, issued febbraio 28, 1956
  • (EN) United States Patent 3161861, United States Patent and Trademark Office. "Magnetic core memory" (improvements) Ken Olsen filed novembre 1959, issued December 1964
  • (EN) United States Patent 4161037, United States Patent and Trademark Office. "Ferrite core memory" (automated production), luglio 1979
  • (EN) United States Patent 4464752, United States Patent and Trademark Office. "Multiple event hardened core memory" (radiation protection), agosto, 1984

Collegamenti esterni[modifica | modifica sorgente]