[Перевод] Устройство модуля памяти на магнитных сердечниках в винтажном мейнфрейме IBM 1401
Модуль ферритовой памяти на 4000 символов в мейнфрейме IBM 1401
Мейнфрейм IBM 1401 был представлен в 1959 году, а к середине 60-х стал самым популярным компьютером в мире, намного опережая конкурентов. Особым спросом он пользовался у среднего и крупного бизнеса, в силу своей дешевизны. Ключевым фактором успеха 1401 была его память на магнитных сердечниках (ферритовая память) на 4000 символов, где данные хранились на крошечных намагниченных ферритовых кольцах — сердечниках.
Модуль памяти (см. фото вверху) на удивление сложно устроен, с тысячами маленьких сердечников, закреплённых на красной электропроводке. В этой статье мы детально углубимся в его устройство.
Мейнфрейм IBM 1401 середины 60-х. Справа построчный принтер 1403, на заднем плане ленточный накопитель 792
Мейнфрейм IBM 1401 имеет размер примерно как два холодильника. Чтобы добраться до модуля памяти, нужно распахнуть переднюю дверцу, как показано внизу. Консольные коммутаторы, лампочки и провода остаются слева. Сам модуль памяти в центре, по большей части закрыт коричневой печатной платой.
Открыв панель (слева) на мейнфрейме 1401, мы видим модуль памяти на магнитных сердечниках (в центре)
Диаграмма внизу показывает, как хранится в памяти символ 'A'. Каждому биту в памяти соответствует своё ферритовое кольцо или сердечник. Эти сердечники можно намагнитить в одном или двух направлениях, что соответствует биту 0 или 1. Сердечники сгруппированы в решётку из 4000 штук, которая называется «уровень» (plane). Чтобы обратиться к определённому адресу, активируются провода X и Y, выбирая сердечник, который находится на их пересечении. Каждый уровень хранит один бит данных по данному адресу, и они сложены так, чтобы хранить один символ. Вы можете предположить, что 8 уровней используются для хранения байта, но IBM 1401 создавалась до повсеместного применения байтов и использует 6-битные символы на двоично-десятичном коде (BCD, binary-coded decimal). В каждой локации также хранится бит специальных метаданных, который называется «отметка слова» (word mark), соответствующая началу поля или инструкции. Добавим бит чётности — и получаем хранилище на восемь бит по каждому адресу.
Диаграмма из справочного руководства показывает, как хранится в памяти символ 'A'
Поскольку IBM 1401 был компьютером для бизнеса, он использовал десятичную арифметику, а не двоичную; каждый символ представляет собой двоично-десятичный код, вместе с двумя дополнительными «битами зоны» для буквенно-цифровых символов. Мейнфрейм применял адреса из трёх цифр, казалось бы, он может получить доступ только к тысяче локаций. Но хитрость в том, что два бита зоны для разряда сотен давали тысячный разряд от 0 до 3. Как следствие, адреса выше 1000 становились буквенно-цифровыми вместо цифровых; локация 2345 обозначалась как L45.
Свойства ферритовых сердечников
Физические свойства ферритовых сердечников критически важны для функционирования памяти, поэтому очень важно понимать их. Во-первых, если по проводу через сердечник проходит сильный ток, то сердечник намагнитится в соответствии с направлением тока (по правилу буравчика). Ток в одном направлении запишет в сердечник «единицу», ток в противоположном направлении вызовет противоположное намагничивание и запишет в сердечник «ноль».
Гистерезис — ключевое свойство сердечника: ток должен превысить определённый порог, чтобы повлиять на намагничивание сердечника. Малый ток не окажет никакого эффекта, но ток выше порога приведёт к «щелчку» с переходом в намагниченное состояние в соответствии с направлением тока.
Крупный план ферритовых сердечников IBM 1401 с 4K памяти. Четыре провода проходят через каждый сердечник: два провода возбуждения X и Y, S (sense, провод считывания) и Z (inhibit, провод запрета)
Свойство гистерезиса делает возможным выбор конкретного сердечника. «Половинный» ток направляется по соответствующему проводу возбуждения X, и «половинный» ток — по соответствующему проводу возбуждения Y. Таким образом, только единственный сердечник среди тысяч остальных получит ток, достаточный для изменения своего состояния.
Последнее важное свойство заключается в том, что когда сердечник изменяет направление намагниченности, он индуцирует ток в проводе считывания, проходящем через этот сердечник. Если направление намагниченности не изменяется, то никакого тока там нет. Этот индуцированный ток используется для считывания состояния бита памяти. Как следствие, при считывании информации с сердечника информация стирается и должна быть перезаписана.
Структура уровня с сердечниками
Каждый уровень состоит из 4000 сердечников, расположенных в сетке 50×80. Чтобы уменьшить наводки, ферритовые сердечники расположены в шахматном порядке, где каждый сердечник находится диагонально в противоположном направлении от своих соседей. Четыре провода проходят через каждый из них. Горизонтальные провода — провода возбуждения X и провода запрета Z, которые используются для записи. Вертикальные провода — провода возбуждения Y и провода считывания S. Провода возбуждения X и Y идут через все уровни, так что все уровни доступны параллельно.
Ферритовая память IBM 1401. Каждый уровень содержит 4000 сердечников в сетке 80×50
Чтобы прочитать состояние бита памяти, провода возбуждения X и Y намагничивают выбранные сердечники в направлении »0». Если сердечник до этого был в состоянии »1», то изменение состояния индуцирует ток в проводе считывания S. Если сердечник и так был был в состоянии »0», никакого тока не индуцируется. Таким образом, провод считывания позволяет определить, какой бит хранится в памяти. Процедура считывания уничтожает предыдущее состояние сердечника, переводя его в состояние »0». На каждом уровне есть провод считывания, протянутый через все сердечники уровня.
Для записи информации ток в противоположном направлении направляется через провода возбуждения X и Y для намагничивания сердечника в состояние »1». Чтобы сохранить сердечник в состоянии »0», ток направляют по проводу запрета этого уровня. Провод запрета проходит через все сердечники уровня параллельно проводам возбуждения X. При наличии тока в противоположном направлении в проводе запрета ток в проводе X компенсируется и состояние сердечника остаётся неизменным. Ток запрета слишком мал, чтобы сам по себе изменить состояние бита, так что остальные сердечники не обнуляются.
Диаграмма внизу демонстрирует топологию уровня в модуле памяти на магнитных сердечниках IBM 1401. Большинство сердечников вырезано из диаграммы, на что указывают серые пунктирные линии. Стороны уровня обозначены буквами от A до D, в соответствии с документацией 140. На сторонах A и C расположено по 56 контактов, в то время как на сторонах B и D — по 104 контакта. Не все контакты подключены.
Топология проводов в уровне модуля памяти на магнитных сердечниках IBM 1401
Провода возбуждения X обозначены зелёным цветом, а провода возбуждения Y — красным. Провода возбуждения управляются сложным способом через матричные коммутаторы, так что адреса сердечников расположены не последовательно. Каждый матричный коммутатор получает два набора входящих линий и активирует исходящий ток ток в зависимости от входящих значений. Матричный коммутатор из 5×10 проводов возбуждения X имеет пять входящих линий по горизонтали и десять входящих линий по вертикали, выдавая 50 исходящих значений, которые соответствуют проводам возбуждения X. Десять входящих линий по вертикали соответствуют разряду единиц, а пять горизонтальных — цифре чётных сотен.
Матричный коммутатор из 8×10 проводов возбуждения Y имеет восемь входящих линий по горизонтали и десять входящих линий по вертикали, выдавая 80 исходящих значений, которые соответствуют проводам возбуждения Y. Десять входящих линий по вертикали соответствуют разряду десятков, а восемь горизонтальных — хитрая комбинация одновременно нечётных сотен и тысяч.
Схема может показаться слишком сложной, но она сводит к минимум количество оборудования, необходимого для декодирования адресов в памяти.
Каждая половина уровня (0–1999 и 2000–3999) оснащена отдельной петлёй провода считывания, но обычно они соединены вместе. Два провода считывания показаны синим цветом и установлены в направлении Y. Провода считывания аккуратно расположены, чтобы не пострадать от наводок. Провода пересекаются посередине, чтобы аннулировать наводки от проводов возбуждения Y — провода считывания проходят в противоположном направлении вдоль половины каждого провода возбуждения Y, так что любой индуцированный сигнал сведён на нет. Вдобавок, провода считывания скручиваются на выходе с середины уровня, чтобы избежать наводок. (Многие другие системы памяти на магнитных сердечниках избегают наводок за счёт протяжения проводов считывания диагонально, но в 1401 используется прямоугольная планировка).
На каждой половине уровня есть отдельный провод запрета. Два провода запрета показаны коричневым цветом и проходят рядом с проводами возбуждения X, которые они и должны блокировать. Два провода обычно управляются отдельно для уменьшения наводок, но у них одинаковый сигнал. Поскольку провода запрета меняют направление в каждом ряду, альтернативные провода возбуждения X тоже имеют разное направление тока в каждом ряду.
Как память на магнитных сердечниках монтируется в мейнфрейм
Следующая фотография показывает модуль памяти, установленный в стойку, вместе с большим количеством транзисторных плат (SMS-карты), которые нужны для его работы. Каждая из карт SMS (Standard Modular System) размером с колоду игральных карт содержит несколько транзисторов и других компонентов. Слева — карты DKA и AQW для матричных коммутаторов, а также карты AQV для проводов запрета. В следующей колонке — карты для декодирования адресов. В третьей колонке — карты WX и AQX для проводов возбуждения. Далее прикреплён сам модуль памяти с матричными коммутаторами сверху.
Модуль памяти и печатная плата мейнфрейма IBM 1401
На фото внизу модуль памяти установлен внутри мейнфрейма, перед ним свисает пучок чёрных и жёлтых проводов, в основном, адресных. Матричные коммутаторы слева.
Кстати, на фотографии заметна одна из интересных особенностей 1401. Сверху на компьютере установлен счётчик, который фиксирует время работы компьютера. IBM обычно сдавала мейнфрейм в аренду на условии использования не более восьми часов в день, иначе требовалось доплатить. (Конечно, если вы только изначально не выбрали тариф 24/7).
В верхнем правом углу можно увидеть розетки электропитания — обычные электрические розетки, но установленные внутри компьютера.
Заключение
Память на магнитных сердечниках была ведущей технологией памяти с середины 50-х годов, пока её не вытеснила полупроводниковая память в начале 70-х. Для своего времени, ферритовая память обеспечивала компактное, надёжное и недорогое хранилище данных, но с тех пор технологии сделали значительный шаг вперёд. В памяти мейнфрейма 1401 скорость машинного цикла составляла 11,5 микросекунд, по сравнению с 5 наносекундами в современных ОЗУ. Объём памяти составлял 4K (расширялся до 16K), а в современных компьютерах он измеряется гигабайтами. Апгрейд мейнфрейма с добавлением ещё одного модуля 4K стоил $20 100 ($162 000 на современные доллары). Сейчас же модуль на 16 гигабайт стоит меньше ста долларов. Несмотря на всё, устаревшая память на магнитных сердечниках — интересная технология для изучения.
Автор благодарит за помощь участников группы реставрации 1401 и сотрудников Музея компьютерной истории в Калифорнии, где этот раритет выставляют для публики по средам и субботам.
Перевод опубликован с сокращениями