Как устроена магнитная память компьютера

Обновлено: 02.07.2024

Сейчас стандарт памяти в компьютерах — SSD или HDD: данные хранятся либо в чипах, которые сделаны из ловушек электронных зарядов; либо на крутящихся магнитных дисках. И так уже последние лет 20.

Но так было не всегда: память в компьютерах была очень разной и совершенно не похожа на то, что есть сейчас. Вот подборка старой и экзотической памяти, которая использовалась в ИТ в разное время.

Перфокарта

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

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

Впервые перфокарты начали применять для ткацких станков ещё в 1804 году: с помощью перфорации на карте можно было менять рисунок на вышиваемом ковре.

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

Экзотические виды памяти

Память на магнитной проволоке

Один из способов хранить данные — взять что-нибудь намагничиваемое и намагнитить это в нужных местах. И потом прочитать магнитное поле — вот и данные.

На этом принципе основана память на магнитной проволоке:

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

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

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

Экзотические виды памяти

Память на магнитной ленте

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

  • за единицу времени можно записывать больше информации;
  • точность записи позволяет записывать данные плотнее, чем раньше — это значит, что на одной и той же длине носителя можно записать в 100 раз больше данных;
  • так как протягивать ленту можно быстрее, чем проволоку, выросла и скорость чтения и записи.

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

Экзотические виды памяти

Приёмник кассет для домашних компьютеров Commodore

Загрузка игры с кассеты:

Экзотические виды памяти

Система хранения данных IBM на базе магнитных лент. Аналогичные до сих пор используются для долгосрочного хранения больших объёмов данных без необходимости часто их считывать

Магнитный барабан

Интересное решение хранения данных из 60-х годов: барабан с намагниченными участками. Чтобы прочитать данные, барабан раскручивался и подводился нужным участком к неподвижным считывающим головкам.

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

Экзотические виды памяти

Магнитный барабан для хранения данных

Память на линиях задержки

Инженеры всё время пытались решить такую задачу: получать доступ к произвольным участкам памяти и делать это максимально быстро. Магнитные ленты и барабаны для этого не годились — слишком медленно.

Один из способов решить одновременно обе задачи — использовать трубки со ртутным наполнителем. Работает это так:

  • трубка подключается к системе хранения данных, чтобы на неё всё время подавалось напряжение;
  • если на управляющий контакт подать ток, то этот сигнал будет бегать по трубке туда-сюда до тех пор, пока к самой трубке будет подходить ток, даже если управляющий контакт отключить от сети;
  • для считывания данных достаточно обратиться к другому управляющему контакту — в этот момент бегающий импульс отправится дальше и даст компьютеру логическую единицу.

Несмотря на всю свою громоздкость, память на линиях задержки работала в ИТ примерно до 1970 года, а в ламповых телевизорах она применялась до 2000-х годов.

Экзотические виды памяти

Память на ртутных акустических линиях задержки в компьютере UNIVAC I, 1951 год (фото из музея)

Компакт-диски

С начала 1980-х и вплоть до 2010-х у нас были компакт-диски. Принцип действия напоминает перфокарты:

  1. На большом металлическом диске выдалбливают маленькие ложбинки по кругу.
  2. В длине этих ложбинок кодируют единицы и ноли.
  3. Лазер светит в ложбинки, а фоторезистор считывает отражённый свет.

Похоже на принцип действия виниловых пластинок, только без касания иглой.

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

Из плюсов — прорывные для своего времени объёмы данных на относительно недорогих в производстве пластинах.

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

Зато диски из 1992–1995 годов слушаются сейчас на ура, потому что тогда на покрытие не жалели алюминия.

Радужный цвет — это эффект многократного преломления и отражения света в ложбинках на поверхности диска А это — сами ложбинки, в которых кодируется информация

Память на твисторах

Ещё один способ хранения данных с помощью магнитного поля, только современный и перспективный.

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

И вот есть новый способ: магниторезистивная память, по-простому — твистеры. Работает так: каждая ячейка хранит не заряд, а миниатюрное магнитное поле, образованное двумя слоями проводников.

Чтобы прочитать данные, достаточно пустить ток вдоль ячеек, а магнитное поле будет влиять на ток — так можно считывать данные сколько угодно раз. А для записи достаточно пустить мощный ток по другой линии, чтобы изменить значение магнитного поля в ячейке. Скорость записи в такой памяти в 10 000 раз выше, чем в современной оперативной памяти.

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

Экзотические виды памяти

Магниторезистивная память

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

Бинарные данные, или по другому биты, представляют собой ячейки памяти, в которых информация может храниться только в двух состояниях: 0 и 1. Файлы и программы, содержащие в себе миллионы бит информации, обрабатываются в центральном процессоре, или ЦПУ, который выполняет роль мозга у компьютера. И поскольку количество знаков для обработки растет в геометрической прогрессии, компьютерные разработчики находятся в постоянной борьбе между размером, ценой и скоростью.

Краткосрочная память

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

Наиболее распространенный тип ОЗУ - это ОЗУ динамического типа . Каждая ячейка такого устройства включает в себя маленький транзистор и конденсатор, которые хранят последнее состояние электрического заряда: 1 - заряд есть, 0 - заряд отсутствует. Данный вид памяти называется динамическим потому, что он не долгое время может сохранять заряд и его нужно время от времени заряжать, чтобы обезопаситься себя от потери данных.

Кэш хранилища

Время отклика со скоростью 100 наносекунды для современных компьютеров считается очень длительным. Для сверхбыстрых операций используется скоростное внутреннее кэш-хранилище, производимое из ОЗУ статического типа. Оно обычно состоит из 6 соединенных транзисторов, которым не нужна подзарядка. Статическая память является самой быстрой и, соответственно, самой дорогой. По своим размерам она также уступает динамической: занимает почти в 3 раза больше места. ОЗУ и кэш могут хранить данные, только пока они подключены к источнику питания. Для того, чтобы пользоваться данными после выключения устройства, их нужно перенести в долгосрочную память.

Долгосрочная память

Существует 3 вида долгосрочной памяти.

Магнитный носитель - самый дешевый вид - данные записываются на магнитную пленку вращающегося диска. Есть нюанс: так как диск должен вращаться, то нужно потратить намного больше времени, чтобы извлечь нужные данные. Время отклика таких устройств в 100.000 раз больше, чем у динамической ОЗУ.

Оптические носители , представленные DVD или Blu-ray, также используют вращающиеся диски, но уже с отражающим покрытием. Информация кодируется с помощью специальных светлых и темных красителей, пятна которых позже считываются с помощью лазера. Оптические носители довольно дешевые и их можно извлекать из компьютера. Однако их время отклика еще более длительное, а емкость меньше, чем у магнитных ОЗУ.

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

Надежна ли компьютерная память?

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

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



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

1. История

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

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

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

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 градуса, что создаёт небольшое поле смещения, направленное вдоль наклона. Это поле пренебрежимо мало по сравнению с полем катушек, и не мешает перемещению пузырьков при работе устройства, но смещает пузырьки в фиксированные позиции относительно пермаллоевых элементов, когда устройство выключено. Сильная перпендикулярная составляющая постоянных магнитов поддерживает существование пузырьковых магнитных доменов.


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

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


Для генерации пузырька, в самом начале входного трека имеется проводник, изогнутый в виде крошечной петли. В него подаётся импульс тока, который создаёт в очень маленькой области магнитное поле сильнее, чем поле постоянных магнитов. Импульс создаёт в этом месте пузырёк, который остаётся постоянно, поддерживаемый постоянным магнитным полем, и циркулирует вдоль пермаллоевого элемента под действием вращающегося магнитного поля. Если нам нужно записать единицу в память, мы подаём короткий импульс в проводящую петлю, и в результате рождается два пузырька (на рисунке обозначены как 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. Список литературы

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



Модуль ферритовой памяти на 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 и сотрудников Музея компьютерной истории в Калифорнии, где этот раритет выставляют для публики по средам и субботам.

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