Память на цилиндрических магнитных доменах. Часть 1. Принцип работы


    Фото из коллекции автора

    1. История


    Пузырьковая память, или память на цилиндрических магнитных доменах является энергонезависимой памятью, разработанной в Bell Labs в 1967 году Эндрю Бобеком (Andrew Bobeck). Исследования показали, что маленькие цилиндрические магнитные домены образуются в монокристаллических тонких плёнках ферритов и гранатов, когда достаточно сильное магнитное поле направлено перпендикулярно поверхности плёнки. Изменяя магнитное поле, можно перемещать эти пузыри. Такие свойства делают магнитные пузырьки идеальным средством для построения последовательного хранилища бит, наподобие сдвигового регистра, в котором наличие или отсутствие пузырька в определённой позиции означает нулевое или единичное значение бита. Диаметр пузыря составляет десятые доли микрона, один чип может хранить тысячи бит данных. Так, например, весной 1977 года Texas Instruments впервые представила на рынке чип ёмкостью 92304 бита. Эта память является энергонезависимой, что делает её похожей на магнитную ленту или диск, но так как она является твердотельной и не содержит движущихся частей, она имеет большую надёжность, чем лента или диск, и не требует обслуживания, а также имеет гораздо меньшие размеры и вес, и может использоваться в портативных устройствах.

    Первоначально изобретатель пузырьковой памяти, Эндрю Бобек, предложил «одномерный» вариант памяти, в виде нити, на которую намотана тонкая полоска ферромагнитного материала. Такая память называлась «твисторной», и даже выпускалась серийно, однако вскоре была вытеснена «двумерным» вариантом.

    Вы можете ознакомиться с историей создания пузырьковой памяти в [1-3].

    2. Принцип действия


    Здесь я прошу меня простить, я не физик, поэтому изложение будет очень приблизительным.

    Некоторые материалы (например, гадолиниево-галлиевый гранат), обладают свойством намагничиваться в только одном направлении, и если вдоль этой оси приложить постоянное магнитное поле, то намагниченные области сформируют нечто вроде пузырьков, как показано на рисунке ниже. Каждый пузырь имеет всего несколько микрон в диаметре.

    Пусть мы имеем тонкую, порядка 0,001 дюйма, кристаллическую плёнку из такого материала, нанесённую на немагнитную, например, стеклянную, подложку.


    Всё дело в волшебных пузырьках. Картинка слева — магнитное поле отсутствует, картинка справа — магнитное поле направлено перпендикулярно поверхности плёнки.

    Если на поверхности плёнки из такого материала сформировать рисунок из магнитного материала, например, пермаллоя, железо-никелевого сплава, то пузырьки будут примагничиваться к элементам этого рисунка. Обычно используются рисунки в виде Т-образных или V-образных элементов.

    Одиночный пузырь может быть сформирован магнитным полем 100-200 эрстед, которое приложено перпендикулярно магнитной плёнке и создаётся постоянным магнитом, а вращающееся магнитное поле, сформированное двумя катушками в направлениях XY, позволяет перемещать пузырьки-домены от одного магнитного «островка» к другому, как это показано на рисунке. После четырёхкратной смены направления магнитного поля домен переместится от одного островка к соседнему.



    Всё это позволяет рассматривать ЦМД-устройство как сдвиговый регистр. Если мы будем формировать пузыри на одном конце регистра и детектировать их на другом, то мы можем пустить определённый паттерн пузырьков по кругу, и использовать систему как запоминающее устройство, считывая и записывая биты в определённые моменты времени.

    Отсюда следуют достоинства и недостатки памяти на ЦМД: достоинством является энергонезависимость (пока приложено перпендикулярное поле, создаваемое постоянными магнитами, пузырьки никуда не исчезнут и не сдвинутся со своих позиций), а недостатком — большое время доступа, т.к. для доступа к произвольно взятому биту нужно прокрутить весь сдвиговый регистр до нужной позиции, и чем он длиннее, тем больше циклов для этого потребуется.


    Паттерн магнитных элементов на магнитной плёнке ЦМД.

    Создание магнитного домена называется по-английски «nucleation», и заключается в том, что к обмотке прикладывается ток в несколько сотен миллиампер на время около 100нс, и создаётся магнитное поле, перпендикулярное плёнке и противоположное полю постоянного магнита. При этом создаётся магнитный «пузырь» — цилиндрический магнитный домен в плёнке. Процесс, к сожалению, сильно зависит от температуры, возможно неудачное завершение операции записи, при котором пузырь не сформируется, или формирование нескольких пузырей.

    Для чтения данных с плёнки используется несколько техник.

    Один способ, неразрушающее чтение, заключается в детектировании слабого магнитного поля цилиндрического домена с помощью магниторезистивного сенсора.

    Вторым способом является разрушающее чтение. Пузырь отводится на специальный трек генерации/детектирования, в котором пузырь уничтожается, путём намагничивания материала в прямом направлении. Если материал был намагничен в обратном направлении, то есть пузырь присутствовал, это вызовет больший ток в катушке, и это детектируется электронной схемой. После этого пузырь должен быть сгенерирован повторно на специальном треке записи.


    Однако, если память будет организована в виде одного непрерывного массива, то у неё будет два больших недостатка. Во-первых, время доступа будет очень большим. Во-вторых, единственный дефект в цепочке приведёт к полной неработоспособности всего устройства. Поэтому делают память, организованную в виде одного главного трека, и множества подчинённых треков, как показано на рисунке.


    Пузырьковая память с одним непрерывным треком


    Пузырьковая память с главным/подчинёнными треками

    Такая конфигурация памяти позволяет не только сильно уменьшить время доступа, но и позволяет выпускать устройства памяти, содержащие некоторое количество дефектных треков. Контроллер памяти должен их учитывать и обходить их при операциях чтения/записи.

    На рисунке ниже показан разрез «чипа» пузырьковой памяти.



    Также вы можете прочитать о принципе действия пузырьковой памяти в [4, 5].

    3. Intel 7110


    Intel 7110 — модуль пузырьковой памяти, MBM (magnetic-bubble memory) ёмкостью 1 Мб (1048576 бит). Именно он изображён на КДПВ. 1 мегабит — это ёмкость для хранения пользовательских данных, с учётом избыточных треков полная ёмкость составляет 1310720 бит. Устройство содержит 320 петлеобразных треков (loops) ёмкостью 4096 бит каждый, но для пользовательских данных используются только 256 из них, остальное — резерв для замены «битых» треков и для хранения избыточного кода коррекции ошибок. Устройство имеет архитектуру «главный трек-подчинённые треки» (major track-minor loop). Информация о активных треках содержится в отдельном загрузочном треке (bootstrap loop). На КДПВ вы можете видеть шестнадцатиричный код, напечатанный прямо на модуле. Это и есть карта «битых» треков, 80 шестнадцатиричных цифр представляют 320 треков данных, активные представлены единичным битом, неактивные — нулевым.

    Вы можете ознакомиться с оригинальной документацией на модуль в [7].

    Устройство имеет корпус с двухрядным расположением выводов и монтируется без пайки (в сокет).

    Структура модуля показана на рисунке:



    Массив памяти делится на две «полусекции» (half sections), каждая из которых делится на две «четвертинки» (quads), каждая четвертинка имеет 80 подчинённых треков. Модуль содержит пластину с магнитным материалом, расположенную внутри двух ортогональных обмоток, создающих вращающееся магнитное поле. Для этого на обмотки подаются сигналы тока треугольной формы, смещённые на 90 градусов относительно друг друга. Сборка из пластины и обмоток помещена между постоянными магнитами и помещена в магнитный экран, который замыкает магнитный поток, создаваемый постоянными магнитами и экранирует устройство от внешних магнитных полей. Пластина размещена под наклоном в 2,5 градуса, что создаёт небольшое поле смещения, направленное вдоль наклона. Это поле пренебрежимо мало по сравнению с полем катушек, и не мешает перемещению пузырьков при работе устройства, но смещает пузырьки в фиксированные позиции относительно пермаллоевых элементов, когда устройство выключено. Сильная перпендикулярная составляющая постоянных магнитов поддерживает существование пузырьковых магнитных доменов.



    Модуль содержит следующие узлы:

    1. Запоминающие треки. Непосредственно те треки из пермаллоевых элементов, которые удерживают и направляют пузырьки.
    2. Генератор репликации. Служит для репликации пузырька, который постоянно присутствует в месте генерации.
    3. Входной трек и узлы обмена. Сгенерированные пузырьки перемещаются вдоль входного трека. Пузырьки перемещаются в один из 80 подчинённых треков.
    4. Выходной трек и узел репликации. Пузыри вычитываются из треков данных без их разрушения. Пузырь разделяется на две части, и одна из них направляется в выходной трек.
    5. Детектор. Пузыри из выходного трека попадают в магниторезистивный детектор.
    6. Загрузочный трек. Загрузочный трек содержит информацию об активных и неактивных треках данных.

    Ниже мы рассмотрим эти узлы более подробно. Также вы можете ознакомится с описанием этих узлов в [6].

    Генерация пузыря




    Для генерации пузырька, в самом начале входного трека имеется проводник, изогнутый в виде крошечной петли. В него подаётся импульс тока, который создаёт в очень маленькой области магнитное поле сильнее, чем поле постоянных магнитов. Импульс создаёт в этом месте пузырёк, который остаётся постоянно, поддерживаемый постоянным магнитным полем, и циркулирует вдоль пермаллоевого элемента под действием вращающегося магнитного поля. Если нам нужно записать единицу в память, мы подаём короткий импульс в проводящую петлю, и в результате рождается два пузырька (на рисунке обозначены как Bubble split seed). Один из пузырьков устремляется вращающимся полем вдоль пермаллоевоего трека, второй остаётся на месте и быстро приобретает первоначальный размер. Затем он перемещается к одному из подчинённых треков, и меняется местами с пузырьком, который циркулирует в нём. Он, в свою очередь, достигает конца входного трека и исчезает.

    Обмен пузырьками




    Обмен пузырьками происходит, когда в соответствующий проводник подаётся импульс тока прямоугольной формы. При этом не происходит разделения пузырька на две части.

    Чтение данных




    Данные направляются на выходной трек путём их репликации, и продолжают циркулировать в своём треке после считывания. Таким образом, в данном устройстве реализован неразрушающий способ чтения. Для репликации, пузырь направляется под продолговатый элемент из пермаллоя, под которым он растягивается. Сверху также находится проводник в форме петли, если в петлю подать импульс тока, пузырь разделится на две части. Импульс тока состоит из короткого участка с большой силой тока для того, чтобы разделить пузырь на две части, и более длинного участка с меньшей силой тока, для того, чтобы направить пузырь на выходной трек.

    В конце выходного трека находится детектор пузыря, магниторезистивный мост, изготовленный из пермаллоевых элементов, образующих цепь большой длины. Когда магнитный пузырь попадает под пермаллоевый элемент, его сопротивление изменяется, и на выходе моста появляется разность потенциалов в несколько милливольт. Форма пермаллоевых элементов подобрана так, чтобы пузырь двигался вдоль них, в конце он попадает на специальную «охранную» шину и исчезает.

    Избыточность


    Устройство содержит 320 треков, каждый по 4096 бит. Из них 272 активных, 48 запасных, неактивных.

    Загрузочный трек (Boot Loop)


    Устройство содержит 320 треков данных, из которых для хранения пользовательских данных предназначены 256, остальные могут быть неисправны или могут служить запасными для замены неисправных. Один дополнительный трек содержит информацию об использовании треков данных, по 12 бит на каждый трек. Когда на систему подаётся питание, она должна быть инициализирована. В процессе инициализации контроллер должен прочитать загрузочный трек, и записать информацию из него в специальный регистр чипа форматирования/датчика тока. Тогда контроллер будет использовать только активные треки, а неактивные будут игнорироваться, и в них не будет производиться запись.

    Хранилище данных — структура


    С точки зрения пользователя, данные хранятся в 2048 страницах по 512 бит каждая. 256 байт данных, 14 бит кода коррекции ошибок и 2 неиспользуемых бита сохраняются в каждой половине устройства.

    Коррекция ошибок


    Обнаружение и коррекция ошибок может производиться микросхемой датчика тока, которая содержит декодер 14-битного кода, исправляющего единичную ошибку длиной до 5 бит (burst error) в каждом блоке из 270 бит (включая сам код). Код дописывается в конец каждого 256-битного блока. Код коррекции может использоваться, или не использоваться, по желанию пользователя, проверка кода может быть включена или выключена в контроллере. Если код не используется, все 270 бит могут быть использованы для пользовательских данных.

    Время доступа


    Магнитное поле вращается с частотой 50 кГц. Среднее время доступа к первому биту первой страницы равно 41 мс, это половина времени, требуемого для совершения полного цикла по треку плюс время прохождения выходного трека.

    320 активных и запасных треков разделены на четыре части по 80 треков в каждой. Такая организация сокращает время доступа. Четвертинки адресуются попарно: каждая пара четвертинок содержит чётные и нечётные биты слова соответственно. Устройство содержит четыре входных трека с четырьмя начальными пузырьками, и четыре выходных трека. Выходные треки используют два детектора, они организованы таким образом, что в один детектор никогда не попадает два пузырька с двух треков одновременно. Таким образом, четыре потока пузырьков мультиплексируются и преобразуются в два потока бит и сохраняются в регистрах чипа датчика тока. Там содержимое регистров снова мультиплексируется и по последовательному интерфейсу попадает в контроллер.

    Во второй части статьи мы более подробно рассмотрим схемотехнику контроллера пузырьковой памяти.

    4. Список литературы


    Автор нашёл в самых тёмных уголках сети и сохранил для вас в массу полезной технической информации по памяти на ЦМД, её истории и прочим связанным аспектам:

    1. https://old.computerra.ru/vision/621983/ — Две памяти инженера Бобека
    2. https://old.computerra.ru/vision/622225/ — Две памяти инженера Бобека (часть 2)
    3. http://www.wikiwand.com/en/Bubble_memory — Bubble memory
    4. https://cloud.mail.ru/public/3qNi/33LMQg8Fn Adaptation of Magnetic Bubble Memory in a Standard Microcomputer Environment
    5. https://cloud.mail.ru/public/4YgN/ujdGWtAXf — Texas Instruments TIB 0203 Bubble Memory
    6. https://cloud.mail.ru/public/4PRV/5qC4vyjLa — Memory Components Handbook. Intel 1983.
    7. https://cloud.mail.ru/public/4Mjv/41Xrp4Rii 7110 1-Megabit Bubble Memory
    Share post

    Similar posts

    Comments 23

      –6
      Какой замечательный гуглоперевод. Или яндекс даже.
        0
        Мне вот нужна память, допускающая максимальное число циклов перезаписи и в перечне МОП. Хотел на ЦМП поставить или FRAM. В СССР ЦМД была. А вот сегодня есть? Я не нашёл. И FRAM отечественной нет (РЕ014 не в счёт — её в перечне МОП'а нет до сих пор — там кристалл импортный).
          0
          Кристалл импортный. Не в курсе насчёт списков МОП, сорри. Где нужно, ставят FRAM.
            0
            В ВПК так не сделаешь… Флэш отечественный вот есть. А она сдохнет от такого использования, которое нужно мне. Много проблем с элементной базой у нас в стране… Вот для космоса ещё и фиг радстойкость пройдёшь с теми же процессорами (раньше летало много раз и ничего, а тут по результатам облучений для сертификации должно дохнуть за день — и всё). А система раньше была на x86. Вот и хочется x86 радстойкий, а его никто не делал.
              +1
              Я работал в ВПК, и больше не работаю. Сами понимаете, что обсуждать эти темы в интернетах не очень хорошо. Я могу сказать только, что ставят именно FRAM с импортными кристаллами.
                +1
                Или FRAM или многократно резервированную отечественную флеш с мажоритаркой.
                Обсуждать в режиме открытого доступа это точно не стоит.
                  +1
                  многократно резервированную отечественную флеш с мажоритаркой.
                  Какой смысл в этом, если по дозе оно все одновременно отвалится?
                    0
                    Какой смысл в этом, если по дозе оно все одновременно отвалится?


                    Я отвечал исходя из постановки вопроса «В ВПК так не сделаешь» в контексте хранилок. Надо было подставить цитату.

                    В ВПК так делают и испытания оно проходит. Но это не космос.
                  0
                  Вот и хочется x86 радстойкий, а его никто не делал.
                  И не будет делать. Летайте на КОМДИВах, камон.
                    0
                    Не можем. Сделано было на x86 десятилетия назад (и всё работало достаточно надёжно на множестве аппаратов), а на переделку никто из заказчиков потратиться не пожелал. Хотят то же, но радстойкое и по цене изготовления плюс небольшой доработки. Ну и массу ещё зажали.
                      0
                      Ну и массу ещё зажали.
                      Массу блюдечка с голубой каемочкой?
                        +3
                        Да чёрт с ним.
                        Допустим комдив сделали. А ide с компиляторами сделали? :)
                        А то тут к одному из таких шедевров отечественного микроконтроллеростроения шёл Code Composer с Си ДО стандарта даже 89 года. «Ай спасибо, Айболит!» И этот компилятор, к примеру, кушает int a[3]={1,2,3}; только забывает выполнить инициализацию этого самого массива (оптимизация не при чём! этот массив активно используется). Знать бы, что он ещё компилирует, но не выполняет…
                          0
                          Допустим комдив сделали. А ide с компиляторами сделали? :)
                          Ну так спросите у разработчиков, а не у меня; они вам расскажут, что конкретно есть.
                            +1
                            Компилятор для комдива давным-давно есть. Фронт-энд у него стандартный из gcc. В целом проблем особых именно с компилятором не слышал. Что с IDE — сейчас не скажу. Но, на сколько помню, отладчик в каком-то виде все же работает. Обратитесь к разработчику К32, они даже какое-то время назад определили в штате человека для контактов с внешним миром по техническим вопросам и поддержке.
                              +2
                              А вы случайно не знаете готовые модули на 1907ВМ038/1907ВМ028? В идеале чтобы модуль был типа компьютера с ОЗУ, flash-диском, операционкой, портами. В общем, типа модулей на x86, каких множество в формате PC-104. Разработчики комдива нам сообщили, что нифига подобного они не выпускают. То есть, процессор есть — систем уровня компьютера нет. А так без полноценной обвязки (контроллеров интерфейсов и прерываний, BIOS, операционки и т.д.) это по сути микроконтроллер на стероидах с большим ОЗУ и частотой.
                                +3
                                На 100% не скажу, с серийными производством конечных устройств не сталкивался. Из того что знаю: обычно у разработчиков есть платы в том виде, который вам нужен:
                                — СнК
                                -ОЗУ
                                — интерфейсы
                                — микросхема ППЗУ (bios).
                                формат — скорее всего AT/ATX.
                                Серийно их сам НИИСИ не делает, но какое-то их количество выпускается для каждой микросхемы. Одну из таких плат можно одолжить и/или купить у НИИСИ.
                                А так серийным производством модулей на процессорах НИИСИ, если не ошибаюсь, обычно занимается АО «КБ „Корунд-М“.
                  0
                  Из советской ничего не подойдет?
                    0
                    Точно нет.
                  +2
                  Про советские аналоги этих магнитных девайсов можно почитать вот здесь: www.155la3.ru/k1602.htm В кратком пересказе: у нас всё было.
                    0
                    Не могу сказать, что сильно удивился, но кроме галош таки делали лютые вины.
                    0
                    Одной из первой рекламой на ТВ (канал 2x2 в Москве) — Память на ЦМД!
                    Возможно ошибаюсь, но там вроде-бы был мегабит. Такой модуль (микросхема и некая обвязка) потом появился и у меня, но протерялся. Читаю и понимаю, что просто так потестить бы и не удалось. Сама микросхема, очень похожа на эту: www.155la3.ru/k1602.htm
                      0
                      Спасибо за статью – только однажды слышал про такую память, но описания не встречал. Интересно, можно ли что-то такое сделать на современных 2Д материалах.
                        0
                        Я не знаю, производятся ли сейчас такие материалы. Если под «сделать» вы подразумеваете DIY, то скорее всего, нет, нельзя, это сложная промышленная технология. Если промышленным образом, то очевидно, можно, но не нужно.

                      Only users with full accounts can post comments. Log in, please.