
Foto da coleção do autor
1. História
A memória magnética em bolhas, ou memória em domínios magnéticos cilíndricos, é uma memória não volátil, desenvolvida nos Bell Labs em 1967 por Andrew Bobeck. Pesquisas mostraram que pequenos domínios magnéticos cilíndricos se formam em filmes finos de ferromagnetos e granadas monocristalinas quando um campo magnético forte o suficiente é aplicado perpendicularmente à superfície do filme. Ao alterar o campo magnético, é possível mover essas bolhas. Essas propriedades tornam as bolhas magnéticas um meio ideal para a construção de um armazenamento sequencial de bits, semelhante a um registrador de deslocamento, onde a presença ou ausência de uma bolha em uma determinada posição representa um valor binário zero ou um. O diâmetro da bolha é de décimos de micrômetro, e um chip pode armazenar milhares de bits de dados. Por exemplo, na primavera de 1977, a Texas Instruments apresentou pela primeira vez no mercado um chip com capacidade de 92304 bits. Essa memória é não volátil, o que a torna semelhante à fita magnética ou disco, mas como é sólida e não contém partes móveis, possui maior confiabilidade do que fita ou disco, não requer manutenção e também tem dimensões e peso muito menores, podendo ser usada em dispositivos portáteis.
Inicialmente, o inventor da memória em bolhas, Andrew Bobeck, propôs uma versão "unidimensional" da memória, em forma de um fio, no qual uma fina tira de material ferromagnético era enrolada. Essa memória foi chamada de "twistor" e até foi produzida em série, mas logo foi substituída pela versão "bidimensional".
Você pode se familiarizar com a história da criação da memória em bolhas em [1-3].
2. Princípio de funcionamento
Aqui peço desculpas, não sou físico, portanto a explicação será muito aproximada.
Alguns materiais (como granada de gadolínio-gálio) têm a propriedade de se magnetizar em apenas uma direção, e se um campo magnético constante for aplicado ao longo desse eixo, as áreas magnetizadas formam algo parecido com bolhas, como mostrado na imagem abaixo. Cada bolha tem apenas alguns micrômetros de diâmetro.
Suponha que temos um filme cristalino com espessura de cerca de 0,001 polegadas, aplicado em um substrato não magnético, como vidro.

Tudo está nos bolhas mágicas. A imagem à esquerda — o campo magnético está ausente, a imagem à direita — o campo magnético é direcionado perpendicularmente à superfície do filme.
Se formarmos um padrão de material magnético, como permalloy, uma liga de ferro-níquel, na superfície do filme feito desse material, as bolhas serão atraídas para os elementos desse padrão. Normalmente, padrões em forma de elementos em T ou V são utilizados.
Uma única bolha pode ser formada por um campo magnético de 100-200 ergstes, que é aplicado perpendicularmente ao filme magnético e gerado por um ímã permanente, enquanto um campo magnético rotativo, criado por duas bobinas nas direções XY, permite mover as bolhas-domínios de uma 'ilha' magnética para outra, como mostrado na imagem. Após quatro mudanças na direção do campo magnético, o domínio se moverá de uma ilha para a vizinha.

Tudo isso permite considerar o dispositivo CMD como um registro de deslocamento. Se formarmos bolhas em uma extremidade do registro e as detectarmos na outra, poderemos enviar um determinado padrão de bolhas em um ciclo, usando o sistema como uma unidade de armazenamento, lendo e gravando bits em momentos específicos.
Daqui surgem as vantagens e desvantagens da memória baseada em CMD: a vantagem é a independência de energia (enquanto um campo perpendicular gerado por ímãs permanentes estiver aplicado, as bolhas não desaparecerão nem se moverão de suas posições), enquanto a desvantagem é o grande tempo de acesso, pois para acessar um bit aleatório é necessário percorrer todo o registro de deslocamento até a posição desejada, e quanto mais longo for, mais ciclos serão necessários.

O padrão de elementos magnéticos no filme magnético CMD.
A criação de um domínio magnético é chamada em inglês de "nucleation", e envolve aplicar uma corrente de algumas centenas de miliamperes à bobina por um tempo de cerca de 100 ns, criando um campo magnético perpendicular à película e oposto ao campo de um ímã permanente. Isso gera uma "bolha" magnética — um domínio magnético cilíndrico na película. Infelizmente, o processo depende muito da temperatura, podendo resultar na falha da operação de gravação, em que a bolha não se forma, ou na formação de várias bolhas.
Para ler os dados da película, são utilizadas várias técnicas.
Um método, a leitura não destrutiva, consiste em detectar o fraco campo magnético do domínio cilíndrico com um sensor magnetorresistivo.
O segundo método é a leitura destrutiva. A bolha é direcionada para uma trilha especial de geração/detecção, onde a bolha é destruída, magnetizando o material na direção correta. Se o material foi magnetizado na direção oposta, ou seja, se a bolha estava presente, isso causará uma corrente maior na bobina, que será detectada pelo circuito eletrônico. Após isso, a bolha deve ser gerada novamente em uma trilha especial de gravação.

No entanto, se a memória for organizada como um único array contínuo, ela terá duas grandes desvantagens. Em primeiro lugar, o tempo de acesso será extremamente grande. Em segundo lugar, um único defeito na cadeia levará à total inoperância de todo o dispositivo. Portanto, a memória é organizada em uma trilha principal e várias trilhas subordinadas, como mostrado na figura.

Memória de bolhas com uma trilha contínua

Memória de bolhas com trilhas principal/subordinadas
Essa configuração de memória não só reduz significativamente o tempo de acesso, como permite a produção de dispositivos de memória que contenham uma certa quantidade de trilhas defeituosas. O controlador de memória deve levar isso em consideração e evitar essas trilhas durante as operações de leitura/gravação.
Na figura abaixo, é mostrado um corte do "chip" de memória de bolhas.

Você também pode ler sobre o princípio de funcionamento da memória de bolhas em [4, 5].
3. Intel 7110
Intel 7110 — módulo de memória de bolhas, MBM (memória de bolha magnética) com capacidade de 1 MB (1048576 bits). É ele que está representado no CDPV. 1 megabit é a capacidade de armazenamento de dados do usuário, considerando trilhas redundantes, a capacidade total é de 1310720 bits. O dispositivo contém 320 trilhas em forma de laço (loops) com capacidade de 4096 bits cada, mas apenas 256 delas são usadas para dados do usuário, o restante é reserva para substituição de trilhas “defeituosas” e para armazenamento de código de correção de erros redundante. O dispositivo possui uma arquitetura de “trilha principal-trilhas subordinadas” (major track-minor loop). As informações sobre as trilhas ativas estão contidas em uma trilha de inicialização separada (bootstrap loop). No CDPV, você pode ver o código hexadecimal impresso diretamente no módulo. Este é o mapa das trilhas “defeituosas”, 80 dígitos hexadecimais representam 320 trilhas de dados, as ativas são representadas por um bit único, as inativas — por um zero.
Você pode consultar a documentação original do módulo em [7].
O dispositivo possui um invólucro com configuração de pinos em duas fileiras e é montado sem solda (em soquete).
A estrutura do módulo é mostrada na figura:

O arranjo de memória é dividido em duas “meias seções” (half sections), cada uma delas é dividida em duas “quartas partes” (quads), cada quarta parte possui 80 trilhas subordinadas. O módulo contém uma placa com material magnético, posicionada entre duas bobinas ortogonais, que criam um campo magnético rotativo. Para isso, sinais de corrente em forma de triângulo, deslocados em 90 graus um em relação ao outro, são aplicados às bobinas. A montagem da placa e bobinas é colocada entre ímãs permanentes e envolvida em uma tela magnética, que fecha o fluxo magnético gerado pelos ímãs permanentes e isola o dispositivo de campos magnéticos externos. A placa é posicionada em um ângulo de 2,5 graus, criando um pequeno campo de deslocamento direcionado ao longo da inclinação. Este campo é desprezível em comparação com o campo das bobinas e não interfere no movimento das bolhas durante o funcionamento do dispositivo, mas desloca as bolhas para posições fixas em relação aos elementos de permalloy quando o dispositivo está desligado. A forte componente perpendicular dos ímãs permanentes mantém a existência de domínios magnéticos de bolhas.

O módulo contém os seguintes nós:
- Trilhas de memória. Especificamente aquelas trilhas de elementos de permalloy que retêm e direcionam as bolhas.
- Gerador de replicação. Serve para replicar a bolha, que está continuamente presente no local de geração.
- Trilha de entrada e nós de troca. As bolhas geradas se movem ao longo da trilha de entrada. As bolhas se deslocam para uma das 80 trilhas subordinadas.
- Trilha de saída e nó de replicação. As bolhas são lidas das trilhas de dados sem serem destruídas. A bolha é dividida em duas partes, e uma delas é direcionada para a trilha de saída.
- Detector. As bolhas da trilha de saída vão para o detector magnetorressistivo.
- Trilha de загрузка. A trilha de загрузка contém informações sobre as trilhas de dados ativas e inativas.
Abaixo, iremos examinar esses nós com mais detalhes. Você também pode consultar a descrição desses nós em [6].
Geração de bolha

Para gerar uma bolha, no início da trilha de entrada, há um condutor curvado em forma de um pequeno laço. A ele é enviado um impulso de corrente, que cria em uma área muito pequena um campo magnético mais forte do que o campo de ímãs permanentes. O impulso cria, nesse local, uma bolha, que permanece constantemente, sustentada pelo campo magnético permanente, e circula ao longo do elemento de permalloy sob a ação de um campo magnético rotativo. Se precisamos gravar uma unidade na memória, enviamos um curto impulso para o laço condutor, resultando no nascimento de duas bolhas (indicadas na figura como Bubble split seed). Uma das bolhas se dirige ao longo da trilha de permalloy, enquanto a outra permanece no lugar e rapidamente retorna ao seu tamanho original. Em seguida, ela se move para uma das trilhas subordinadas e troca de lugares com a bolha que lá circula. Essa, por sua vez, alcança o final da trilha de entrada e desaparece.
Troca de bolhas

A troca de bolhas ocorre quando um impulso de corrente retangular é enviado para o condutor correspondente. Nesse processo, não ocorre a divisão da bolha em duas partes.
Leitura de dados

Os dados são enviados para a trilha de saída por meio de replicação e continuam a circular em sua trilha após a leitura. Assim, este dispositivo implementa um método não destrutivo de leitura. Para replicação, a bolha é direcionada para um elemento alongado de permaloide, sob o qual ela é estendida. Acima, também existe um condutor em forma de laço; se um impulso de corrente for aplicado ao laço, a bolha se dividirá em duas partes. O impulso de corrente consiste em um trecho curto com alta intensidade de corrente para dividir a bolha em duas partes, e um trecho mais longo com menor intensidade de corrente para direcionar a bolha para a trilha de saída.
No final da trilha de saída, há um detector de bolhas, uma ponte magnetorresistiva feita de elementos de permaloide que formam um circuito de grande comprimento. Quando a bolha magnética passa sob o elemento de permaloide, sua resistência altera-se, e uma diferença de potencial de alguns milivolts aparece na saída da ponte. A forma dos elementos de permaloide é projetada para que a bolha se mova ao longo deles, e, ao final, ela chega a um barramento de ‘proteção’ especial e desaparece.
Redundância
O dispositivo contém 320 trilhas, cada uma com 4096 bits. Dentre elas, 272 são ativas e 48 são de reserva, não ativas.
Trilha de Inicialização (Boot Loop)
O dispositivo contém 320 trilhas de dados, das quais 256 são destinadas ao armazenamento de dados do usuário; as restantes podem ser defeituosas ou podem servir como reservas para substituir as com problemas. Uma trilha adicional contém informações sobre o uso das trilhas de dados, com 12 bits para cada trilha. Quando o sistema é energizado, ele deve ser inicializado. Durante a inicialização, o controlador deve ler a trilha de inicialização e gravar as informações dela em um registrador especial do chip de formatação/sensor de corrente. Assim, o controlador usará apenas as trilhas ativas, enquanto as não ativas serão ignoradas, e não haverá gravação nelas.
Armazenamento de Dados — Estrutura
Do ponto de vista do usuário, os dados são armazenados em 2048 páginas de 512 bits cada. 256 bytes de dados, 14 bits de código de correção de erros e 2 bits não utilizados são armazenados em cada metade do dispositivo.
Correção de Erros
A detecção e correção de erros pode ser realizada por um chip de sensor de corrente que contém um decodificador de código de 14 bits, capaz de corrigir um erro único de até 5 bits (erro em rajada) em cada bloco de 270 bits (incluindo o próprio código). O código é anexado ao final de cada bloco de 256 bits. A correção de código pode ser utilizada ou não, a critério do usuário; a verificação do código pode ser ativada ou desativada no controlador. Se o código não for utilizado, todos os 270 bits podem ser utilizados para dados do usuário.
Tempo de acesso
O campo magnético gira a uma frequência de 50 kHz. O tempo médio de acesso ao primeiro bit da primeira página é de 41 ms, que é metade do tempo necessário para completar um ciclo completo na trilha, mais o tempo de passagem pela trilha de saída.
320 trilhas ativas e de reserva são divididas em quatro partes de 80 trilhas cada. Essa organização reduz o tempo de acesso. As quartas partes são endereçadas em pares: cada par de quartas partes contém os bits pares e ímpares da palavra, respectivamente. O dispositivo contém quatro trilhas de entrada com quatro bolhas iniciais e quatro trilhas de saída. As trilhas de saída utilizam dois detectores, organizados de tal forma que nunca duas bolhas de duas trilhas diferentes caiam no mesmo detector ao mesmo tempo. Assim, quatro fluxos de bolhas são multiplexados e convertidos em dois fluxos de bits e armazenados nos registradores do chip do sensor de corrente. O conteúdo dos registradores é então multiplexado novamente e transmitido ao controlador através da interface serial.
Na segunda parte do artigo, examinaremos mais detalhadamente o circuito do controlador de memória de bolhas.
4. Referências
O autor encontrou em os cantos mais obscuros da internet e preservou para você uma série de informações técnicas úteis sobre a memória em domínios magnéticos, sua história e outros aspectos relacionados:
1. — Duas memórias do engenheiro Bobek
2. — Duas memórias do engenheiro Bobek (parte 2)
3. — Memória de bolhas
4. Adaptação da Memória Magnética de Bolhas em um Ambiente Microcomputador Padrão
5. — Texas Instruments TIB 0203 Memória de Bolhas
6. — Manual de Componentes de Memória. Intel 1983.
7. 7110 1-Megabit Memória de Bolhas
Fonte: habr.com
