
Foto della collezione dell'autore
1. Storia
La memoria a bolle, o memoria a domini magnetici cilindrici, è una memoria non volatile, sviluppata nei Bell Labs nel 1967 da Andrew Bobeck. Le ricerche hanno dimostrato che piccoli domini magnetici cilindrici si formano in film sottili monocrystalline di ferriti e granati quando un campo magnetico sufficientemente forte è applicato perpendicolarmente alla superficie del film. Variando il campo magnetico, è possibile spostare queste bolle. Queste proprietà fanno delle bolle magnetiche un mezzo ideale per costruire uno storage sequenziale di bit, simile a un registro a scorrimento, dove la presenza o l'assenza di una bolla in una posizione determinata significa un valore di bit zero o uno. Il diametro della bolla è di decimi di micron, un chip può memorizzare migliaia di bit di dati. Ad esempio, nella primavera del 1977, la Texas Instruments ha presentato per la prima volta sul mercato un chip con una capacità di 92304 bit. Questa memoria è non volatile, il che la rende simile a un nastro o un disco magnetico, ma poiché è a stato solido e non contiene parti in movimento, è molto più affidabile rispetto a nastri o dischi e non richiede manutenzione, e ha dimensioni e peso molto ridotti, rendendola adatta per dispositivi portatili.
Inizialmente, l'inventore della memoria a bolle, Andrew Bobeck, propose una versione "unidimensionale" della memoria, sotto forma di un filo su cui è avvolta una sottile striscia di materiale ferromagnetico. Questa memoria era chiamata "twistor", ed è stata anche prodotta in serie, ma fu presto soppiantata dalla versione "bidimensionale".
Puoi consultare la storia della creazione della memoria a bolle in [1-3].
2. Principio di funzionamento
Qui chiedo scusa, non sono un fisico, quindi l'esposizione sarà molto approssimativa.
Alcuni materiali (come il granato gado-gallico) hanno la proprietà di magnetizzarsi solo in una direzione, e se lungo questo asse viene applicato un campo magnetico costante, le aree magnetizzate formano qualcosa di simile a bolle, come mostrato nella figura sottostante. Ogni bolla ha solo alcuni micron di diametro.
Supponiamo di avere un film cristallino sottile, di circa 0,001 pollici, di tale materiale, applicato su un supporto non magnetico, come il vetro.

Tutto ruota attorno alle bolle magiche. L'immagine a sinistra mostra un campo magnetico assente, e quella a destra mostra un campo magnetico applicato perpendicolarmente alla superficie del film.
Se sulla superficie del film di tale materiale si forma un disegno di materiale magnetico, come il permalloy, una lega di ferro e nichel, le bolle si magnetizzeranno verso gli elementi di questo disegno. Di solito vengono utilizzati disegni a forma di T o V.
Una singola bolla può essere formata da un campo magnetico di 100-200 oersted applicato perpendicolarmente al film magnetico e generato da un magnete permanente, mentre un campo magnetico rotante, generato da due bobine nelle direzioni XY, consente di spostare le bolle-domeni da un "isolotto" magnetico all'altro, come mostrato nella figura. Dopo aver cambiato la direzione del campo magnetico quattro volte, il dominio si sposterà da un isolotto al suo vicino.

Tutto ciò consente di considerare un dispositivo CMD come un registro a scorrimento. Se formiamo bolle a un'estremità del registro e le rileviamo all'altra estremità, possiamo inviare un certo pattern di bolle in circolo e utilizzare il sistema come una memoria, leggendo e scrivendo bit in momenti specifici.
Da ciò derivano i pregi e i difetti della memoria CMD: un pregio è la mancanza di volatilità (finché è applicato un campo perpendicolare generato da magneti permanenti, le bolle non scompariranno né si sposteranno dalle loro posizioni), mentre un difetto è il lungo tempo di accesso, poiché per accedere a un bit arbitrario è necessario far scorrere l'intero registro a scorrimento fino alla posizione desiderata, e più lungo è, più cicli sono necessari.

Il pattern degli elementi magnetici sulla pellicola magnetica CMD.
La creazione di un dominio magnetico è chiamata in inglese "nucleation" ed implica l'applicazione di una corrente di alcune centinaia di milliampere alla bobina per un tempo di circa 100 ns, generando un campo magnetico perpendicolare alla pellicola e opposto al campo di un magnete permanente. In questo processo viene creato un "bolla" magnetica: un dominio magnetico cilindrico nella pellicola. Purtroppo, questo processo dipende fortemente dalla temperatura, il che può comportare un'interruzione non riuscita dell'operazione di scrittura, durante la quale la bolla non si forma, o la formazione di più bolle.
Per leggere i dati dalla pellicola vengono utilizzate diverse tecniche.
Un metodo, la lettura non distruttiva, consiste nel rilevare il debole campo magnetico del dominio cilindrico tramite un sensore magnetoresistivo.
Il secondo metodo è la lettura distruttiva. La bolla viene indirizzata su una traccia speciale di generazione/detecting, dove viene distrutta mediante magnetizzazione del materiale in direzione diretta. Se il materiale era magnetizzato in direzione opposta, quindi la bolla era presente, questo causerà una corrente maggiore nella bobina, e sarà rilevata da un circuito elettronico. Successivamente, la bolla deve essere generata di nuovo su una traccia di scrittura speciale.

Tuttavia, se la memoria è organizzata come un singolo array continuo, avrà due grandi svantaggi. In primo luogo, il tempo di accesso sarà molto elevato. In secondo luogo, un singolo difetto nella catena porterà a un totale malfunzionamento dell'intero dispositivo. Pertanto, la memoria è progettata come un’unica traccia principale e molte sottomisure, come mostrato nell'immagine.

Memoria a bolle con un'unica traccia continua

Memoria a bolle con tracce principali/sottomesure
Questa configurazione di memoria non solo riduce significativamente il tempo di accesso, ma consente anche la produzione di dispositivi di memoria che contengono un certo numero di tracce difettose. Il controller della memoria deve tenerne conto ed evitarle durante le operazioni di lettura/scrittura.
L'immagine sottostante mostra una sezione del "chip" di memoria a bolle.

Puoi anche leggere il principio di funzionamento della memoria a bolle in [4, 5].
3. Intel 7110
Intel 7110 è un modulo di memoria a bolle, MBM (magnetic-bubble memory) con una capacità di 1 Mb (1048576 bit). È proprio questo che è rappresentato nel DPV. 1 megabit è la capacità di memorizzazione dei dati utente, considerando le tracce ridondanti, la capacità totale è di 1310720 bit. Il dispositivo contiene 320 tracce a forma di anello (loops) con una capacità di 4096 bit ciascuna, ma solo 256 di esse sono utilizzate per i dati dell'utente, il resto è un backup per la sostituzione delle tracce "difettose" e per la memorizzazione di codice di correzione errori ridondante. Il dispositivo ha un'architettura "traccia principale-tracce secondarie" (major track-minor loop). Informazioni sulle tracce attive sono contenute in una traccia di bootstrap separata. Nel DPV puoi vedere il codice esadecimale stampato direttamente sul modulo. Questo è la mappa delle tracce "difettose", 80 cifre esadecimali rappresentano 320 tracce dati; le attive sono rappresentate da un bit di 1, le inattive da un bit di 0.
Puoi consultare la documentazione originale sul modulo in [7].
Il dispositivo ha un involucro con un layout a doppia fila di pin ed è montato senza saldatura (in socket).
La struttura del modulo è mostrata nell'immagine:

L'array di memoria è diviso in due "mezzosezioni" (half sections), ciascuna delle quali è ulteriormente suddivisa in due "quarti" (quads), ogni quarto ha 80 tracce seconde. Il modulo contiene una piastra di materiale magnetico posta all'interno di due bobine ortogonali che generano un campo magnetico rotante. A tale scopo, alle bobine vengono applicati segnali di corrente di forma triangolare, sfasati di 90 gradi l'uno rispetto all'altro. L'assemblaggio della piastra e delle bobine è collocato tra magneti permanenti ed è racchiuso in uno schermo magnetico, che chiude il flusso magnetico creato dai magneti permanenti e schermizza il dispositivo dai campi magnetici esterni. La piastra è inclinata di 2,5 gradi, creando un piccolo campo di offset diretto lungo l'inclinazione. Questo campo è trascurabile rispetto a quello delle bobine e non ostacola il movimento delle bolle durante il funzionamento del dispositivo, ma sposta le bolle in posizioni fisse rispetto agli elementi di permalloy quando il dispositivo è spento. La forte componente perpendicolare dei magneti permanenti mantiene l'esistenza dei domini magnetici a bolle.

Il modulo contiene i seguenti nodi:
- Tracce di memorizzazione. Sono direttamente le tracce di elementi di permalloy che trattengono e dirigono le bolle.
- Generatore di replica. Serve per la replicazione della bolla, che è costantemente presente nel luogo di generazione.
- Traccia d'ingresso e nodi di scambio. Le bolle generate si muovono lungo la traccia d'ingresso. Le bolle si spostano in una delle 80 tracce subordinate.
- Traccia d'uscita e nodo di replica. Le bolle vengono lette dalle tracce dati senza essere distrutte. La bolla si divide in due parti, e una di esse viene indirizzata alla traccia d'uscita.
- Rilevatore. Le bolle della traccia d'uscita entrano nel rilevatore magnetoresistivo.
- Traccia di avvio. La traccia di avvio contiene informazioni sulle tracce dati attive e inattive.
Di seguito esamineremo questi nodi più nel dettaglio. Puoi anche consultare la descrizione di questi nodi in [6].
Generazione della bolla

Per generare una bolla, all'inizio della traccia d'ingresso è presente un conduttore curvato a forma di piccola ansa. Viene fornito un impulso di corrente che crea in una zona molto piccola un campo magnetico più forte di quello delle calamite permanenti. L'impulso genera in quel punto una bolla, che rimane costantemente, mantenuta da un campo magnetico permanente, e circola lungo l'elemento di permalloy sotto l'azione di un campo magnetico rotante. Se dobbiamo scrivere un '1' nella memoria, forniamo un breve impulso all'ansa conduttrice, e così generiamo due bolle (indicate nell'immagine come Bubble split seed). Una delle bolle si dirige lungo la traccia di permalloy sotto l'influenza del campo rotante, l'altra rimane al suo posto e rapidamente riacquista la dimensione iniziale. Poi si sposta verso una delle tracce subordinate e scambia posto con la bolla che circola in essa. Questa, a sua volta, raggiunge la fine della traccia d'ingresso e scompare.
Scambio di bolle

Lo scambio di bolle avviene quando un impulso di corrente a forma rettangolare viene fornito al conduttore corrispondente. In questo caso, non si verifica la separazione della bolla in due parti.
Lettura dei dati

I dati vengono indirizzati alla traccia d'uscita tramite replicazione e continuano a circolare nella loro traccia dopo la lettura. In questo modo, nel dispositivo viene realizzato un metodo di lettura non distruttivo. Per la replicazione, la bolla viene indirizzata sotto un elemento allungato di permalloy, dove viene allungata. Sopra c'è anche un conduttore a forma di ansa; se viene fornito un impulso di corrente all'ansa, la bolla si separa in due parti. L'impulso di corrente consiste in una breve sezione con una grande intensità di corrente per separare la bolla in due parti, e in una sezione più lunga con una minore intensità di corrente per indirizzare la bolla alla traccia d'uscita.
Alla fine della traccia d'uscita si trova il rilevatore di bolle, un ponte magnetoresistivo realizzato con elementi di permalloy che formano un circuito di grande lunghezza. Quando la bolla magnetica passa sotto l'elemento di permalloy, la sua resistenza cambia, e all'uscita del ponte appare una differenza di potenziale di qualche millivolt. La forma degli elementi di permalloy è progettata in modo che la bolla si muova lungo di essi; alla fine, questa arriva a una speciale "barra di sicurezza" e scompare.
Ridondanza
Il dispositivo contiene 320 tracce, ognuna di 4096 bit. Di esse, 272 attive, 48 di riserva, inattive.
Traccia di avvio (Boot Loop)
Il dispositivo contiene 320 tracce dati, di cui 256 sono destinate a memorizzare i dati degli utenti; le restanti possono essere difettose o possono servire come riserve per sostituire quelle difettose. Una traccia aggiuntiva contiene informazioni sull'uso delle tracce dati, con 12 bit per ogni traccia. Quando il sistema viene alimentato, deve essere inizializzato. Durante il processo di inizializzazione, il controller deve leggere la traccia di avvio e scrivere le informazioni in un registro speciale del chip di formattazione/sensore di corrente. Così il controller utilizzerà solo le tracce attive, mentre quelle inattive verranno ignorate e non verranno scritte.
Memoria dei dati — struttura
Dal punto di vista dell'utente, i dati sono memorizzati in 2048 pagine di 512 bit ciascuna. 256 byte di dati, 14 bit di codice di correzione degli errori e 2 bit non utilizzati vengono conservati in ciascuna metà del dispositivo.
Correzione degli errori
La rilevazione e correzione degli errori può essere effettuata tramite un chip sensore di corrente, che contiene un decodificatore a codice di 14 bit in grado di correggere un singolo errore lungo fino a 5 bit (burst error) in ciascun blocco di 270 bit (incluso il codice stesso). Il codice viene aggiunto alla fine di ciascun blocco di 256 bit. Il codice di correzione può essere utilizzato o meno a discrezione dell'utente, e il controllo del codice può essere attivato o disattivato nel controller. Se il codice non viene utilizzato, tutti i 270 bit possono essere destinati ai dati utente.
Tempo di accesso
Il campo magnetico ruota con una frequenza di 50 kHz. Il tempo medio di accesso al primo bit della prima pagina è pari a 41 ms, ossia la metà del tempo necessario per completare un ciclo intero lungo il tracciato più il tempo di percorrenza del tracciato di uscita.
320 tracciati attivi e di riserva sono suddivisi in quattro parti da 80 tracciati ciascuna. Questa organizzazione riduce il tempo di accesso. Le quartine sono indirizzate a coppie: ogni coppia di quartine contiene rispettivamente i bit pari e dispari della parola. Il dispositivo contiene quattro tracciati di ingresso con quattro bolle iniziali e quattro tracciati di uscita. I tracciati di uscita usano due rilevatori, organizzati in modo tale che non ci siano mai due bolle provenienti da due tracciati diversi nello stesso rilevatore. In questo modo, quattro flussi di bolle vengono multiplexati e convertiti in due flussi di bit e memorizzati nei registri del chip del sensore di corrente. Qui il contenuto dei registri viene nuovamente multiplexato e attraverso l'interfaccia seriale inviato al controller.
Nella seconda parte dell'articolo esamineremo più in dettaglio il circuito del controller della memoria a bolle.
4. Elenco bibliografico
L'autore ha trovato nei luoghi più remoti della rete e ha salvato per voi una serie di informazioni tecniche utili sulla memoria a bolle, la sua storia e altri aspetti correlati:
1. — Le due memorie dell'ingegnere Bobek
2. — Le due memorie dell'ingegnere Bobek (parte 2)
3. — Memoria a bolle
4. Adattamento della memoria a bolle magnetica in un ambiente standard di microcomputer
5. — Texas Instruments TIB 0203 Memoria a bolle
6. — Manuale dei componenti di memoria. Intel 1983.
7. 7110 1-Megabit Memoria a bolle
Fonte: habr.com
