Ферритовая память, как это работает

Обновлено: 02.07.2024

Интересно взглянуть на историю вычислений. Во-первых, концепции и аппаратные реализации обычно проще и понятнее — я купил свой первый компьютер в начале 1980-х и в значительной степени понял все это вплоть до уровня ИС. Сегодня это не совсем работает… Во-вторых, люди обходились гораздо меньшими возможностями, но при этом проделали много серьезной работы. Мы сегодня изрядно избалованы.

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

Но сначала мне нужно было немного узнать о памяти на магнитных сердечниках.

История и контекст

До появления основной памяти варианты хранения были довольно примитивными. Люди использовали такие вещи, как лампы Williams, линии задержки и барабанную память. Они были либо мучительно медленными, либо маломощными, либо и то, и другое. И они были дорогими.

Основная память появилась в то время, когда использование компьютеров перешло от научных исследований к крупномасштабному коммерческому использованию. Ее можно было развернуть на стандартных платах, которые можно было установить в компьютеры, она была значительно быстрее и ее можно было масштабировать до гораздо большей емкости. В течение срока службы основной памяти стоимость упала примерно до 1 цента за бит. Платы с 32 КБ памяти не были редкостью.

Расцвет оперативной памяти пришелся на период с 1960 года по конец 1970 года. В конце концов, полупроводниковая память стала достаточно дешевой, чтобы вытеснить ее, и, конечно, сегодня мы знаем, как она выросла.

У меня есть лишняя плата основной памяти, обеспечивающая 16 тыс. слов (16 бит) памяти, которую я купил на eBay несколько лет назад. Он был изготовлен компанией General Automation Inc, вероятно, в 1977 году. Он состоит из 2 плат, сложенных вместе. Первый содержит всю логику интерфейса и драйверы, а второй содержит магнитопроводы. Ядра маленькие. Очень маленький.

Вот основная память со снятой интерфейсной платой. На этой плате было 294 912 отдельных ядер (обратите внимание, что есть 9 основных блоков, что означает, что эта плата поддерживает бит четности). Каждый из самых маленьких блоков содержал 4096 бит памяти.

core-board

Вот крупный план одного из блоков размером 4 КБ:

core-board- блок

Как работает основная память

Работа с основной памятью на самом деле довольно проста — все, что вам нужно знать, это немного школьной физики.

Прежде всего необходимо знать, что движущиеся заряды (I) создают магнитное поле (B) в направлении по правилу правой руки:

В нашем случае движущиеся заряды — это электроны в проводе (ток). Магнитное поле наматывается на провод. Если мы поместим вокруг провода кольцо из магнитного материала, то протекающий ток может создать в кольце постоянное магнитное поле. Направление магнитного поля зависит от направления тока — измените направление тока, и вы измените направление магнитного поля. Это говорит о том, что, возможно, мы можем использовать направление магнитного поля для представления двоичной цифры…

Чтобы перейти от этого основного физического эффекта к механизму хранения, нам нужны еще две идеи.

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

hysteresis

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

  • Выберите одно текущее направление как представляющее 0, а другое как 1.
  • Запишите желаемое значение бита, подав ток по проводу записи в соответствующем направлении.
  • Чтобы прочитать значение, просто напишите нулевое значение и найдите импульс в чувствительном проводе. Если было видно единицу, мы знаем, что предыдущее значение было единицей, поэтому нам нужно переписать значение назад на единицу. Если пульса не было, то предыдущее значение уже было равно нулю и больше ничего делать не нужно.

Это изобретение было запатентовано в США 2 708 722.

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

Вот Джей Форрестер, который понял, что вам не нужно подавать пороговый ток только через один провод. Вместо этого можно отправить половину необходимого тока по двум проводам в одной жиле. Он предложил расположить ферритовые сердечники в виде прямоугольной матрицы, при этом каждый сердечник окружает один вертикальный и один горизонтальный провод привода. Каждый из проводов может управляться чуть более чем половиной порогового тока. Таким образом, если один вертикальный провод и один горизонтальный провод находятся под напряжением, единственная жила, которая увидит пороговый ток, — это жила на пересечении двух проводов.

Это гораздо более эффективная схема. Он был запатентован под номером 2 736 880 США.

Итак, теперь у нас есть прямоугольный массив ядер, каждое из которых имеет два проводника привода, адресованных в координатах (x, y) с текущим направлением, определяющим записанное значение. Сердечники также имеют сенсорный провод для считывания импульса. Однако вам нужен только один сенсорный провод для всей матрицы, так как вы записываете только одно ядро ​​за раз (вам нужно только знать, перевернулось ли одно из ядер или нет).

Многие массивы основной памяти также имеют четвертый провод, известный как провод запрета. Как и сигнальный провод, один запрещающий провод проходит через все жилы. Назначение провода запрета состоит в том, чтобы опционально обеспечить ток в направлении, противоположном току записи, через записываемое ядро. Это компенсирует часть магнитного поля и предотвратит изменение сердечника. Почему вы хотите это сделать? Ответ заключается в том, что он позволяет легко складывать несколько плоскостей основной памяти, используя одни и те же провода привода. Без запрещающего провода это привело бы к записи соответствующего ядра в каждой плоскости. Посылая соответствующий ток по всем проводам запрета, кроме одного, мы можем гарантировать, что запись влияет только на желаемую плоскость. Запрет проводов — это эффективный способ масштабирования системы за счет добавления нескольких плоскостей ядра памяти. В качестве альтернативы можно было бы увеличивать размеры матриц, но в конечном итоге текущие потери и перекрестные помехи делают это нецелесообразным.

Итак, вам действительно нужно это знать.

Сложная часть — это производство, особенно с обычными требованиями увеличения емкости (уменьшения размеров) и производительности. На пике своего развития платы памяти могли предоставлять десятки килобайт со временем доступа до 1 мкс (что соответствует тактовой частоте 1 МГц). И, конечно же, основная память имеет одно огромное преимущество, о котором я еще не упомянул, — она сохраняет свое содержимое при отключении питания!

Сборка основной памяти потребовала некоторых довольно специальных методов. Первоначально их собирали вручную, но со временем были созданы различные приспособления и тому подобное, чтобы упростить задачу. IBM описала кое-что из того, как это было сделано, в своей статье 1969 года «Ferrite Core Planes and Arrays: IBM’s Manufacturing Evolution» [PDF].

core-board- урон

Создание доски

Итак, теперь я подумал, что хотел бы попробовать воспроизвести плату памяти. Я заказываю ферритовые сердечники на eBay, и через несколько недель они приходят от джентльмена из Болгарии:

ferrite-core

Вау, они меньше, чем я ожидал! У меня был эмалированный провод диаметром 0,2 мм, которого должно быть достаточно, чтобы продеть 3 провода через сердечник…

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

Мой первый шаг состоял в том, чтобы проверить свое понимание того, как работает чтение и запись, поэтому я установил одно ядро ​​на кусок перфокарты и сделал макет тестовой схемы с микроконтроллером для управления им. Самым простым тестом было написать 0, 0, 1, 1 и проверить, что я могу обнаружить импульс только тогда, когда сохраненное значение было изменено. После некоторой настройки текущих значений я смог убедиться, что доказательство концепции работает. Вот снимок экрана с моего осциллографа:

osc-read- импульс

Желтая линия — это сигнал на сенсорном проводе.От операций записи 3 всплеска (отрицательный слева, положительный посередине и справа). Небольшой провал справа от середины — это сигнал изменения направления магнитного поля в сердечнике, примерно 50 мВ, задержанный примерно на 800 нс от импульса. Успех!

Я потратил некоторое время на создание схемы для матрицы 8×8, а затем спроектировал для нее печатную плату. Я отправил дизайн в Ош Парк для изготовления, а когда он вернулся, я провел некоторое время, протягивая провода через крошечные сердечники (по 3 провода в каждом!), а затем поместил остальные компоненты на плату. Вот как это выглядит:

64bit-board

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

Я немного беспокоился о подключении ядер, но оказалось, что это заняло всего несколько часов. Второй из вертикальных/горизонтальных проводов оказался самым сложным, потому что вы проталкиваете провод через жилы под углом 45°. Сенсорный провод был последним, но это было намного проще, чем я ожидал, потому что он проходит через жилы вдоль их оси.

Была только одна ошибка проводки (проводка в верхнем левом углу), но ее было легко обнаружить и исправить. Следующим шагом было подключение его к микроконтроллеру, которому было поручено записывать значения в ядро ​​и считывать их обратно. Результаты были отправлены на мой компьютер по последовательному каналу. Успех! Я смог убедиться, что он работает, помахав магнитом рядом с сердечниками и увидев, что значения искажаются… 🙂

Заключение

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

Конечно, подключение этой штуки к микроконтроллеру на макетной плате не очень приятно. Где-то в глубине моего сознания крутится мысль, что, возможно, версия 2 может иметь USB-интерфейс, чтобы вы могли просто подключить ее к любому компьютеру…

Ссылки на похожие проекты

Я не сделал ничего нового в своем проекте. Вот несколько ссылок на людей, чьи страницы вдохновили меня на это.

Когда мне было поздним подростком и чуть больше двадцати, все компьютеры, которыми я пользовался, были основаны на памяти с ферритовым сердечником. Это довольно уникальная, ныне почти забытая технология, основанная на магнитном гистерезисе для переключения небольших тороидальных «сердечников», изготовленных из особого типа твердого феррита (тороиды, используемые для изготовления трансформаторов, используют другой, «мягкий» вариант феррита) между двумя магнитными состояния. Если вы пропустите провод через сердечник, а затем пропустите через него ток достаточной силы, магнитные домены выровняются так, что сердечник станет намагниченным в одном или другом круговом направлении. Магнитное свойство, благодаря которому эта технология работает как технология памяти, заключается в том, что когда ядро ​​переключается из одного состояния в другое, оно отбрасывает небольшой импульс индуцированного тока, который можно обнаружить с помощью простого транзисторного усилителя. Этого обратного импульса не произойдет, если импульс направлен в направлении, в котором сердечник уже намагничен. Если вы обозначите одну магнитную ориентацию как «1», а другую как «0», импульс отдачи будет происходить, когда сердечник переворачивается с 1 на 0 или с 0 на 1. Этот индуцированный импульс можно увидеть на показанной верхней кривой осциллографа. ниже. Вы заметите, что существует задержка между текущим импульсом, который переворачивает сердечник, и временем, когда появляется импульс отдачи.


Хитрость, которая превращает это в масштабируемую систему памяти, заключается в том, чтобы пропустить два провода через набор ядер, расположенных в сетке X/Y. Затем для адресации отдельного сердечника по выбранной паре проводов X и Y подается импульс тока в 1/2 силы, необходимой для переключения сердечника из одного состояния в другое. Только сердечник на пересечении этих двух импульсов получит магнитную силу, достаточную для переворачивания сердечника, поэтому этот подход называется совпадающим токовыделением. Затем через все сердечники продевается третий провод, называемый «чувствительным», по особой змеевидной схеме, которая пытается нейтрализовать эффект тока, индуцированного линиями привода X/Y. Я понятия не имею, как, но я читал, что коммерческие системы оперативной памяти были построены с использованием сотен тысяч почти микроскопических ядер, которые соединялись вручную. Я восхищаюсь ловкостью рук любого, кто смог это сделать.

До того, как появились твердотельные накопители и разрушили рынок магнитных сердечников, я задумал собрать свой собственный компьютер, используя излишки сердечников, которые много лет хранил в своем гараже. Но на глаза мне попался новый любимец эпохи Intel 8008, и эти планы были надолго забыты. Но в глубине души я всегда задавался вопросом, есть ли у меня «отбивные» для создания памяти на магнитном сердечнике, которая действительно работала бы. Я довольно приличный цифровой дизайнер, но мои аналоговые навыки не так сильны, и, честно говоря, весь процесс казался немного напуганным. Но однажды меня укусила ошибка, поэтому я решил провести несколько экспериментов и выяснить, смогу ли я заставить все это работать. Большинство компонентов, используемых для создания этих старых систем памяти, таких как X/Y-драйверы и усилители считывания, устарели и были практически недоступны в течение многих-многих лет. Но, с некоторыми творческими заменами, я придумал простую, однобитную конструкцию, которая демонстрирует все основные принципы работы памяти с ферритовым сердечником с совпадающими токами.

Прежде чем я смогу построить вспомогательную схему, мне нужно получить несколько настоящих твердых ферритовых сердечников. Потратив много времени, пытаясь найти что-то в текущем производстве, я начал искать на eBay в надежде найти старый базовый самолет по разумной цене. Но, кажется, они должны пользоваться спросом у коллекционеров или музеев, так как большинство из тех, что я видел, продавались по цене, превышающей 100 долларов или больше. Наконец я заметил парня из Болгарии, который продавал небольшие контейнеры с сырыми сердцевинами примерно за 30 долларов. Итак, я сделал ставку на некоторые из них, и через несколько недель у меня в руке оказался круглый пластиковый контейнер, наполненный примерно 45 000 ферритовых сердечников, каждый диаметром около 1 мм, которые, как вы можете видеть на фотографии ниже, чертовски малы. . Но, прочитав эту тему, я понял, что ядрам меньшего размера потребуется меньше энергии для переворачивания, поэтому я решил, что это упростит требования к диску X/Y.


Основываясь на своем исследовании, я подсчитал, что линии привода X/Y должны выдерживать ток менее 1 А, поэтому я остановился на использовании двойного Н-моста производства TI (SN754410) для переключения одного тестового ядра. После некоторых экспериментов я обнаружил, что при 5 вольтах в качестве управляющего напряжения я мог бы использовать резистор 10 Ом, 2 Вт последовательно с каждой выходной линией X/Y для создания импульса тока 1/2. SN754410 использует разделенные источники питания (один для внутренней логики и один для выходных транзисторов), поэтому я использовал свой надежный 5-вольтовый, 3-амперный источник питания «ArcherKit» для тока возбуждения (подключенный к контакту 8 SN754410). Arduino Nano для подачи управляющих сигналов и подключил его 5-вольтовый выход для питания логических цепей SN754410 (контакт 16 SN754410). Схема для этой конструкции показана ниже. Контакты, обозначенные D2-D7, показывают, куда подключать Arduino Nano. (Примечание: контакт D7 используется для подачи триггерного сигнала на прицел, чтобы сделать снимок, показанный выше.)


Приведенный ниже тестовый код записывает повторяющийся набор из трех импульсов, которые переводят ядро ​​в состояние "1", затем в состояние "0", затем снова в состояние "0" (что оставляет ядро ​​в " 0" для следующей серии импульсов.) Чтобы записать "1" в ядро, код устанавливает D3 и D5 в высокий уровень, D4 и D6 в низкий уровень, а затем импульсирует D2 примерно на 2 микросекунды. Чтобы записать «0», код устанавливает D3 и D5 в низкий уровень, D4 и D6 в высокий и снова импульсирует D2. На самом деле обозначение того или иного состояния как состояния «1» или «0» совершенно произвольно. Важной идеей является то, что вы выбираете одно состояние как состояние «1», чтобы вы могли проверить ядра, установленные в это состояние, принудительно переводя их в противоположное состояние и наблюдая за импульсом отдачи. Если вы видите импульс, бит был в состоянии "1". если нет, то он уже был в состоянии "0".

Вы можете проверить эту схему, подключив линию считывания к первому каналу осциллографа, контакт D2 ко второму каналу и D7 к входу внешнего триггера. Это должно позволить вам увидеть сигнал, подобный показанному вверху этой страницы. Или вы можете добавить простой усилитель считывания, подобный показанному ниже, и подключить его к контакту D7 Nano. В приведенном выше коде вы заметите, что подпрограмма pulse() содержит встроенную задержку примерно в 1,2 микросекунды, за которой следует операция чтения строки D8 (операция «PINB & 0x01» — это быстрый способ чтения строки D8). задержка позволяет ядру перевернуться, прежде чем оно сэмплирует выходной сигнал усилителя Sense.


Трансформатор имеет разделенную вторичную обмотку, которая питает два транзистора 2N3904 NPN.Это позволяет схеме считывать либо положительный, либо отрицательный импульс обратной отдачи (обратите внимание, что на графике осциллографа в верхней части страницы есть по одному импульсу каждого из них). «мягкий» ферритовый тороид, такой как те, что используются для согласования антенн (я использовал Philmore FT37-43, купленный у местного Fry’s). обычно образуют обмотку с отводом от центра. Вы можете видеть трансформатор, который я сделал на фотографии ниже, обмотанный синим проводом вместе с моим одноразрядным сердечником (маленькая черная точка со сплетением тонких медных магнитных проводов 34-го калибра, проходящих через него около центра фотографии. ) Схема усилителя Sense адаптирована с этой страницы, на которой также содержится много информации о системах с основной памятью.


После того, как я собрал все части воедино, я открыл окно последовательного монитора Arduino (установил скорость передачи данных 19200), и консоль начала постоянно отображать строку «RD: 001», которая показывает, что первые два импульса перевернули ядра и третьего импульса не было, так схема должна работать. Успех!

Да, в нынешнем виде он практически бесполезен, но это демонстрация «метода», необходимого для создания массивов большего размера. Если вы добавите еще один SN754410, вы сможете напрямую адресовать массив 2x2 бит. Используя четыре SN754410, вы можете адресовать 16 бит в массиве 4x4 или перейти к 64-битному массиву 8x8, используя восемь микросхем SN754410. Для каждого удвоения драйверов X/Y вы получаете в 4 раза больше битов, и вам по-прежнему нужен только один усилитель считывания. В случае, если вам интересно, причина, по которой усилитель считывания рассчитан на работу как с положительным, так и с отрицательным импульсом отдачи, заключается в том, что вы, возможно, помните, что в массиве большего размера обмотка считывания будет иметь резьбу таким образом, чтобы компенсировать токи, наведенные усилителем. водит линии. Из-за этого ядра будут находиться в разных ориентациях по отношению к считываемому импульсу, и, как следствие, усилитель считывания должен иметь возможность считывать обе полярности, чтобы обнаруживать флип во всех битах. Помните, наличие импульса отдачи указывает на то, в каком состоянии находился сердечник, а не полярность импульса отдачи. Проницательный читатель также поймет, что акт чтения состояния ядра также уничтожает информацию в ядре, поэтому эти системы всегда будут записывать прочитанное состояние после его чтения. Эта необходимость записи после каждого чтения также побудила некоторых компьютерных инженеров использовать этот факт при разработке наборов инструкций.

Кстати, есть еще одна хитрая техника эпохи ядра, в которой используются «управляющие» диоды для удвоения линий X/Y, которыми можно управлять с одной стороны H-моста. К сожалению, использование H-моста, такого как SN754410, затрудняет реализацию этой схемы из-за того, как выходные транзисторы верхнего и нижнего плеча соединены вместе. Пример использования управляющих диодов см. на рис. 3b на этой странице. И, как только вы освоите эту технику, вы сможете научиться складывать несколько основных «плоскостей» в трехмерный массив, который добавляет «запретный» провод (или использует смысловой провод для той же цели), чтобы один набор X Драйверы /Y могут управлять всеми сложенными самолетами. Но пока я оставлю это в качестве упражнения для читателя. В конечном итоге я планирую построить массив большего размера, но мне нужно найти способ объединения ядер, который не слишком напрягал бы мою ограниченную ловкость.

Память на магнитных сердечниках была разработана в конце 1940-х и 1950-х годах и оставалась основным способом чтения, записи и хранения данных первых компьютеров, пока в 1970-х годах не появилась оперативная память.

Память на магнитных сердечниках была разработана в конце 1940-х и 1950-х годах и оставалась основным способом чтения, записи и хранения данных на первых компьютерах, пока в 1970-х годах не появилась оперативная память. Этот урок иллюстрирует, как это работает. Установка выглядит немного как шоколадные пончики, натянутые через забор из звеньев сетки. Хотя он и не такой вкусный, он намного оригинальнее.

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

На изображении ниже так называемые пончики представляют собой ферритовые сердечники, а сетка состоит из проводов. Горизонтальные и вертикальные адресные линии X и Y предназначены для направления тока на конкретную жилу. Целью диагональных линий восприятия является считывание тока, генерируемого сдвигом магнитного поля сердечника.

Сначала мы рассмотрим, как память на магнитных сердечниках записывает данные.

Каждое ядро ​​может хранить один бит памяти в форме 0 или 1 — двоичный язык компьютеров. (Если вы наведете курсор мыши на ядра, вы увидите красным значение, которое каждое из них в настоящее время содержит.) Чтобы записать ядро, вам нужно присвоить ему значение (0 или 1) с помощью электрического тока. . Для этого выберите «Установить значение равным 0» или «Установить значение равным 1» в области «Выбор операции». Затем нажмите на любое ядро, чтобы выбрать его. Вы увидите визуальное представление того, что происходит на самом ядре, и текстовое описание справа от рисунка, в области описания операции.

Как видите, ток проходит через соответствующие адресные линии Y и X и пересекается внутри выбранного сердечника, генерируя достаточный ток (обозначенный желтыми электронами, проходящими по проводам), чтобы создать магнитное поле (обозначенное красной стрелкой). ) в направлении, соответствующем 0 биту. Если бит уже имеет значение 0, вы не увидите изменения направления магнитного поля. Но если он имеет значение 1, вы заметите, что электрические токи вызывают изменение направления магнитного поля сердечника, тем самым изменяя его значение на 0.

Вы можете удивиться, почему ни одно из других ядер не затронуто. Целевое ядро ​​— это единственное место в сетке, в котором пересекаются два тока, и, следовательно, единственное место, где ток достаточен, чтобы спровоцировать изменение магнитного поля.

Вы можете изменить значение ядра, на которое вы нацелились, обратно на 1, нажав соответствующий переключатель и снова нажав на ядро. Обратите внимание, что для того, чтобы изменить значение на 1, текущее направление должно быть противоположным тому, которое было необходимо для изменения значения на 0.

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

Однако, если компьютер отправляет сообщение «перевернуть на 0» ядру со значением 1, возникающее в результате большое изменение магнитного поля генерирует относительно высокое напряжение на линиях считывания, как видно на графике напряжения. Компьютер интерпретирует этот всплеск напряжения как 1. Этот тип чтения памяти называется «деструктивным», потому что информация, которая была записана на ядре (0), уничтожается, когда она переворачивается на противоположное значение (1). Память на магнитном сердечнике решает эту проблему, автоматически восстанавливая значение до 1, как показано в руководстве.


Whirlwind изначально был разработан для использования памяти с электронно-лучевой трубкой (ЭЛТ). Его низкая скорость и ненадежность побудили изобретателя Джея Форрестера использовать вместо него ядро.

Память на магнитном сердечнике

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

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


Джей Форрестер держит план ядра памяти

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


Плата основной памяти

Ранние ядра имели диаметр 1/16", к ним можно было получить доступ за 5 микросекунд, и они стоили около 1 доллара США за бит. В итоге они стали в 4 раза меньше, в 10 раз быстрее и в 100 раз дешевле.


Ан Ван

В 1955 году Ван продал права на свой патент на основную память компании IBM за 500 000 долларов США, которые он использовал для основания очень успешной лаборатории Wang Laboratories.


Плоскость памяти с магнитным сердечником Whirlwind

Whirlwind, революционный компьютер Массачусетского технологического института, впервые применил память на магнитных сердечниках.Хотя в этом участвовало несколько изобретателей, именно Джей Форрестер из Массачусетского технологического института усовершенствовал технологию.


Брошюра с образцами магнитного сердечника

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

Кто изобрел основную память?

У успеха тысячи отцов. Или в данном случае, по крайней мере, пять.

Изобретатель-любитель (и уличный инспектор Лос-Анджелеса) Фредерик Вие подал патент на ядерную память в 1947 году. Гарвардский физик Ан Ван подал патент в 1949 году. Ян Райхман из RCA и Джей Форрестер из Массачусетского технологического института подали документы в 1950 и 1951 годах соответственно.

Базовая память оказалась необычайно успешной. Успех принес невероятную прибыль… что, в свою очередь, вызвало споры о праве собственности. Чье это было изобретение?

В 1964 году, после долгих лет юридических тяжб, IBM заплатила MIT 13 млн долларов за права на патент Forrester — на тот момент это была крупнейшая выплата по патенту.


Страница записной книжки Джея Форрестера

Эта запись в блокноте от 13 июня 1949 года показывает ранние мысли Форрестера о методе "совпадающих токов" для памяти на магнитных сердечниках.

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


Патент Фредерика Вие

Виехе был инспектором тротуаров округа Лос-Анджелес, который в свободное время экспериментировал с магнитными материалами. IBM купила права на его патент.

Патент Wang Core Memory

Ван вместе с Вэй-Донг Ву, одноклассником из Китая, изобрел устройство управления передачей импульсов. Патент Вана был одним из самых важных для основной памяти, и IBM заплатила ему 500 000 долларов в 1955 году за права на него.


Ядра памяти BIAX (10 мегациклов)

«Ядра» BIAX, которые на самом деле были кубами, могли считываться неразрушающим образом на скоростях до 10 МГц. Но они были дорогими и использовались только в нескольких высокоскоростных военных и аэрокосмических компьютерах.

Деталь матрицы 64*64 ядер. Диаметр сердечника составляет 0,1 дюйма. Через каждый сердечник проходят четыре провода. Двенадцать таких плоскостей были уложены друг на друга в системе памяти Ferroxcube Inc. Стек находился в тяжелом 19-дюймовом стоечном боксе вместе с блоком питания и электроникой драйвера. .

Небольшое кольцо или сердечник из феррита (ферромагнитной керамики) может быть намагничено в любом из двух противоположных направлений (по часовой стрелке или против часовой стрелки). Следовательно, такое ядро ​​можно использовать для хранения небольшого количества информации.

Примерно в 1950 году память была реализована с помощью линий задержки из ртутной и никелевой проволоки, магнитных барабанов и «трубок Вильямса». Изобретение основной памяти в 1949 году стало скачком вперед в плане рентабельности и надежности; обычно его приписывают А. Вангу и Дж.В. Форрестер [5].
Базовая память была впервые использована в компьютере Whirlwind [4] помимо ламп Вильямса. Первым коммерческим компьютером с основной памятью (100 000 бит, время цикла 17 мкс) был IBM 705, компьютер на основе электронных ламп, поставленный в 1955 году. из которых ежегодно производились во всем мире [1]. Цена за бит оперативной памяти составляла 20 долларов в 1960 году и с тех пор снижалась на 19% в год. В 1974 году произошел «переход» на полупроводниковую (транзисторную) память с появлением 4-килобитного чипа; к тому времени стоимость обоих методов составляла 1 цент за бит.
В течение почти 15 лет «ядро» было самым важным устройством памяти. Основная память использовалась до начала века для специальных целей, потому что она сохраняет информацию при отключении питания и устойчива к радиации.

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

основной чертеж

Основная память часто была организована в виде плоской матрицы, где провод записи был разделен на два провода (строка, столбец), каждый из которых пропускал половину порогового тока переключения. Это позволяло обращаться к конкретному ядру в матрице для чтения или записи. Соответственно, этот тип основной памяти часто называют «совпадающей текущей памятью». Стек таких плоских матриц составлял бы трехмерную структуру, в которой возможны сложные схемы доступа, пронизывающие жилы в каждой отдельной плоскости до 5 проводов.
Ранняя основная память изготавливалась вручную, что было громоздким и, следовательно, дорогим процессом. В [6] описано, как была механизирована нарезка стержня, что позволило сократить время нарезания резьбы на плоскости 64*64 с 25 часов до 12 минут.

Разводка совпадающей текущей матрицы памяти (а). BH-диаграмма ферритового материала сердечника (б). Из [2]

большие ядра

Фрагмент раннего 320-битного модуля памяти с ручной резьбой, вероятно, британского производства [CM 96.91].


Магнитные сердечники также использовались в линейном порядке, в частности, в небольших устройствах, таких как калькуляторы и текстовые процессоры. Печатная плата текстового процессора Datica (Германия, ~1960 г.) с использованием логики DTL [CM 16.21].


Модуль марки Ferroxcube, 16 000 слов (24 бита + бит четности) с соответствующей проводкой, от компьютера GE-Bull 400 [CM 02.58].


Стек памяти, построенный из ядер диаметром 1,2 мм с 5 проводами чтения/записи, использовавшийся в мейнфреймах CDC 6000, примерно в 1968 году. 4K*12 бит, цена 40 000 донских фл. Около 80 000 таких компактных модулей (размером 17*17*10 см) были построены CDC.
[CM 93.05].

Ссылки:

<р>1. Мидделхук, Джордж и Деккер: Физика компьютерных запоминающих устройств. Академическая пресса, 1976.
2. Ивалл (редактор): Электронные компьютеры. Илифф Лондон 1956.
3. Руководство по обслуживанию системы оперативной памяти MF11-U/UP. Корпорация цифрового оборудования 1973.
4. Редмонд и Смит: Вихрь, история первого компьютера. Digital Equipment Corporation 1980.
5. Википедия: Память на магнитных сердечниках
6. Баше и др.: Ранние компьютеры IBM. MIT Press, 1986.
ред., 30 марта 2017 г.

Читайте также: