Компьютер, работавший в ракете-носителе (Launch Vehicle Digital Computer, LVDC), сыграл ключевую роль в лунной программе «Аполлон», управляя ракетой Сатурн 5. Как и большинство компьютеров того времени, он сохранял данные в крошечных магнитных сердечниках. В этой статье Cloud4Y рассказывает про модуль памяти LVDC из роскошной коллекции Стива Джурветсона.
Этот модуль памяти был усовершенствован в середине 1960-х годов. Для его создания использовали компоненты для поверхностного монтажа, гибридные модули и гибкие соединения, что сделало его на порядок меньше и легче, чем обычная память ЭВМ того времени. Впрочем, модуль памяти позволял хранить только 4096 слов по 26 бит.
Модуль памяти на магнитных сердечниках. Этот модуль хранит 4K слов из 26 бит данных и 2 бит чётности. С четырьмя модулями памяти, дающими общую ёмкость 16 384 слова, он весит 2,3 кг и имеет размеры 14 см × 14 см × 16 см.
Полёт на Луну начался 25 мая 1961 года, когда президент Кеннеди заявил, что Америка высадит человека на Луну до конца десятилетия. Для этого использовалась трёхступенчатая ракета Сатурн 5, самая мощная ракета из когда-либо созданных. Сатурн 5 управлялся и контролировался компьютером (вот тут подробнее о нём) третьей ступени ракеты-носителя, начиная от взлета на орбиту Земли, а затем при движении к Луне. (Корабль «Аполлон» в этот момент отделялся от ракеты «Сатурн-5», и задача LVDC была выполнена).
LVDC установлен в опорной раме. Круглые разъёмы видны на лицевой стороне компьютера. Использовалось 8 электрических разъёмов и два разъёма для жидкостного охлаждения
LVDC был лишь одним из нескольких компьютеров на борту «Аполлона». LVDC подключался к системе контроля за полетом, 45-килограммовому аналоговому компьютеру. Бортовой навигационный компьютер «Аполлона» (Apollo Guidance Computer, AGC) направлял космический корабль к поверхности Луны. Командный модуль содержал один AGC, в то время как лунный модуль содержал второй AGC вместе с системой навигации Abort, запасным аварийным компьютером.
На борту Аполлона было несколько компьютеров
Устройства Unit Logic (ULD)
LVDC создавали с помощью интересной гибридной технологии под названием ULD, unit load device. Хотя они внешне напоминали интегральные схемы, модули ULD содержали несколько компонентов. Они использовали простые кремниевые кристаллы, в каждом из которых был только один транзистор или два диода. Эти матрицы вместе с печатными толстопленочными печатными резисторами были установлены на керамической пластине для реализации схем вроде логического вентиля. Эти модули были вариантом модулей SLT (Solid Logic Technology), разработанных для компьютеров IBM популярной серии S/360. IBM начала разработку модулей SLT в 1961 году, до того как интегральные схемы стали коммерчески эффективными, и к 1966 году IBM выпускала более 100 миллионов модулей SLT в год.
Модули ULD были значительно меньше модулей SLT, как видно на фотографии ниже, что делает их более подходящими для компактного космического компьютера Модули ULD использовали керамические площадки-покрытия вместо металлических штырьков в SLT, и имели металлические контакты на верхней поверхности вместо пинов. Зажимы на плате удерживали модуль ULD на месте и соединялись с этими контактами.
Почему IBM использовала модули SLT вместо интегральных схем? Основная причина заключалась в том, что интегральные схемы были еще в зачаточном состоянии, их изобрели в 1959 году. В 1963 году модули SLT имели преимущества в стоимости и производительности по сравнению с интегральными схемами. Тем не менее, модули SLT зачастую рассматривались как отсталые по сравнению с интегральными схемами. Одним из преимуществ модулей SLT над интегральными схемами было то, что резисторы в SLT были намного более точными, чем в интегральных схемах. Во время изготовления толстопленочные резисторы в модулях SLT подвергались тщательной пескоструйной обработке для удаления резистивной пленки до тех пор, пока они не получали желаемое сопротивление. Модули SLT были также дешевле, чем сопоставимые интегральные схемы в 1960-х годах.
LVDC и связанное с ним оборудование использовали более 50 различных типов ULD.
Модули SLT (слева) значительно больше модулей ULD (справа). Размер ULD составляет 7,6 мм × 8 мм
На фото ниже показаны внутренние компоненты модуля ULD. Слева на керамической пластине видны проводники, соединенные с четырьмя крошечными квадратными кремниевыми кристаллами. Это похоже на печатную плату, но имейте в виду, что она намного меньше ногтя. Чёрные прямоугольники справа — это толстопленочные резисторы, напечатанные на нижней стороне пластины.
ULD, вид сверху и снизу. Видны кремниевые кристаллы и резисторы. В то время как модули SLT имели резисторы на верхней поверхности, модули ULD имели резисторы внизу, что увеличивало плотность, а также стоимость
На фотографии ниже виден кремниевый кристалл из модуля ULD, который реализовывал два диода. Размеры необычайно маленькие, для сравнения рядом находятся кристаллики сахара. У кристалла было три внешних соединения через медные шарики, припаянные к трём кругам. Два нижних круга (аноды двух диодов) были легированы (более темные области), в то время как верхний правый круг был катодом, соединённым с основанием.
Фотография двухдиодного кремниевого кристалла рядом с кристаллами сахара
Как работает память на магнитных сердечниках
Память на магнитных сердечниках была основной формой хранения данных на компьютерах с 1950-х годов, пока в 1970-х годах она не была заменена полупроводниковыми запоминающими устройствами. Память была создана из крошечных ферритовых колец, называемых сердечниками. Ферритовые кольца расставлялись в прямоугольную матрицу и через каждое кольцо проходило от двух до четырёх проводов для считывания и записи информации. Кольца позволяли хранить один бит информации. Сердечник намагничивался с помощью импульса тока через провода, проходящие через ферритовое кольцо. Направление намагниченности одного сердечника можно было изменить, послав импульс в противоположном направлении.
Для считывания значения сердечника импульс тока переводил кольцо в состояние 0. Если ранее сердечник находился в состоянии 1, изменяющееся магнитное поле создавало напряжение в одном из проводов, пронизывающем сердечники. Но если бы сердечник уже находился в состоянии 0, магнитное поле не изменилось бы, и в считывающем проводе не поднялось бы напряжение. Таким образом, значение бита в сердечнике считывалось путем сброса его в ноль и проверки напряжения на считывающем проводе. Важной особенностью памяти на магнитных сердечниках было то, что процесс чтения ферритового кольца разрушал его значение, поэтому сердечник нужно было «переписать».
Использовать отдельный провод для изменения намагниченности каждого сердечника было неудобно, но в 1950-х годы разработали ферритовую память, работающую по принципу совпадения токов. Схема с четырьмя проводами — X, Y, считывание, запрет — стала общепринятой. Технология использовала особое свойство сердечников, называемого гистерезисом: небольшой ток не влияет на ферритовую память, но ток выше порогового значения намагничивал бы сердечник. При подаче питания с половиной необходимого тока на одну линию X и одну линию Y только сердечник, в котором пересечены обе линии, получал достаточный ток для перемагничивания, тогда как другие сердечники оставались нетронутыми.
Так выглядела память IBM 360 Model 50. LVDC и модель 50 использовали сердечники одного типа, известные как 19-32, потому что их внутренний диаметр составлял 19 мил (0.4826 мм), а их внешний диаметр составлял 32 мил (0,8 мм). На этой фотографии видно, что через каждый сердечник проходит три провода, но LVDC использовал четыре провода
На фото ниже показана одна прямоугольная матрица памяти LVDC. 8 Эта матрица имеет 128 X-проводов, идущих вертикально, и 64 Y-проводов, идущих горизонтально, с сердечником на каждом пересечении. Единственный провод на чтение проходит через все жилы параллельно Y-образным проводам. Провод на запись и провод запрета проходят через все жилы параллельно X-проводам. Провода пересекаются в середине матрицы; это уменьшает индуцированный шум, потому что шум от одной половины нейтрализует шум от другой половины.
Одна матрица ферритовой памяти LVDC, содержащая 8192 бита. Соединение с другими матрицами осуществляется через штыри по внешней стороне
У матрицы выше было 8192 элемента, каждый из которых сохранял один бит. Чтобы сохранить слово памяти, несколько базовых матриц складывались вместе, по одной для каждого бита в слове. Провода X и Y проходили змейкой по всем основным матрицам. У каждой матрицы была отдельная линия для чтения и отдельная линия запрета для записи. Память LVDC использовала стопкуиз 14 базовых матриц (ниже), хранящих 13-битный «слог» вместе с битом четности.
Стопка LVDC состоит из 14 основных матриц
Запись в память на магнитных сердечниках требовала дополнительных проводов, так называемых линий запрета. Каждая матрица имела одну линию запрета, пронизывающую все сердечники в ней. В процессе записи ток проходит через линии X и Y, перемагничивая выбранные кольца (по одному на плоскость) в состояние 1, сохраняя все 1 в слове. Чтобы записать 0 в позиции бита, линия запитывалась половинным током, противоположным линии Х. В результате сердечники оставались в значении 0. Таким образом, линия запрета не позволяла сердечнику перевернуться на 1. Любое желаемое слово могло быть записано в память путём активации соответствующих линий запрета.
Модуль памяти LVDC
Как физически сконструирован модуль памяти LVDC? В центре модуля памяти находится стопка из 14 матриц ферромагнитной памяти, показанных ранее. Он окружен несколькими платами со схемой для управления проводами X и Y и линиями запрета, линии считывания битов, обнаружения ошибок и генерации необходимых тактовых сигналов.
Вообще, большая часть схем, связанных с памятью, находится в компьютерной логике LVDC, а не в самом модуле памяти. В частности, логика компьютера содержит регистры для хранения адреса и слова данных и преобразования между последовательным и параллельным. Он также содержит схему чтения с линий считывания битов, проверки ошибок и тактирования.
Модуль памяти с указанием ключевых компонентов. MIB (Multilayer Interconnection Board) — это 12-слойная печатная плата
Плата драйвера памяти Y
Слово в памяти на магнитных сердечниках выбирается путем прохождения соответствующих линий X и Y через основную стопку плат. Начнём с описания схемы Y-драйвера и того, как он генерирует сигнал через одну из 64 Y-линий. Вместо 64 отдельных цепей драйверов модуль уменьшает количество схем благодаря использованию 8 «высоких» драйверов и 8 «низких» драйверов. Они подключены в «матричной» конфигурации, поэтому каждая комбинация с высоким и низким драйверами выбирает разные строки. Таким образом, 8 «высоких» и 8 «низких» драйверов выбирают одну из 64 (8 × 8) Y-линий.
Плата драйвера Y (передняя часть) управляет линиями выбора Y в стопке плат
На фото ниже можно увидеть некоторые из модулей ULD (белые) и пары транзисторов (золотистые), которые управляют линиями выбора Y. Модуль «EI» — это сердце драйвера: он подаёт импульс постоянного напряжения (E) или пропускает импульс постоянного тока (I) через линию выбора. Линия выбора управляется активацией модуля EI в режиме напряжения на одном конце линии и модуля EI в режиме тока на другом конце. Результатом является импульс с правильным напряжением и током, достаточным для перемагничивания сердечника. Требуется большой импульс, чтобы перевернуть его; импульс напряжения фиксируется на 17 вольт, а ток колеблется от 180 мА до 260 мА в зависимости от температуры.
Макрофото платы драйвера Y, показывающая шесть модулей ULD и шесть пар транзисторов. Каждый модуль ULD помечен номером детали IBM, типом модуля (например, «EI») и кодом, значение которого невыяснено
Плата также снабжена модулями слежения за ошибками (ED), которые обнаруживают, когда одновременно активируется более одной линии выбора Y. Модуль ED использует простое полуаналоговое решение: он суммирует входные напряжения, используя сеть резисторов. Если результирующее напряжение выше порога, ключ срабатывает.
Под платой драйвера находится диодная матрица, содержащая 256 диодов и 64 резистора. Эта матрица преобразует 8 верхних и 8 нижних пар сигналов от платы драйверов в соединения с 64 Y-линиями, которые проходят через основную стопку плат. Гибкие кабели сверху и снизу платы соединяют плату с диодной матрицей. Два гибких кабеля слева (на фото не видно) и две шины справа (одна из них видна) соединяют диодную матрицу с массивом сердечников. Гибкий кабель, видимый слева, соединяет Y-плату с остальной частью компьютера через плату ввода-вывода, а небольшой гибкий кабель в правом нижнем углу соединяется с платой тактового генератора.
Плата драйвера памяти X
Схема для управления линиями X аналогична схеме Y, за исключением того, что имеется 128 линий X и 64 линий Y. Поскольку X-проводов в два раза больше, у модуля есть вторая плата X-драйверов, расположенная под ней. Хотя платы X и Y имеют одинаковые компоненты, разводка различна.
Эта плата и аналогичная под ней управляют X выбранными строками в стопке плат с сердечниками
На фото ниже видно, что на плате были повреждены некоторые компоненты. Один из транзисторов смещён, модуль ULD сломан пополам, а другой отломан. Разводка видна у сломанного модуля, там же виднеется один из крошечных кремниевых кристаллов (справа). На этом фото также можно рассмотреть следы вертикальных и горизонтальных проводящих дорожек на 12-слойной печатной плате.
Крупный план поврежденного участка платы
Под платами драйверов X расположена матрица диодов X, содержащая 288 диодов и 128 резисторов. X-диодная матрица использует топологию, отличную от Y-диодной платы, чтобы избежать удвоения количества компонентов. Как и Y-диодная плата, эта плата содержит компоненты, установленные вертикально между двумя печатными платами. Этот метод называется «кордвуд» и позволяет плотно упаковывать компоненты.
Макрофото матрицы диода X показывает вертикально установленные диоды по методике кордвуд между 2 печатными платами. Две платы драйверов X находятся над диодной платой, отделенной от них пенополиуретаном. Обратите внимание, что печатные платы расположены очень близко друг к другу
Усилители памяти
На фото ниже показана плата усилителя считывания. Имеет 7 каналов для чтения 7 бит из стека памяти; идентичная плата ниже обрабатывает еще 7 бит, всего 14 бит. Задача усилителя считывания заключается в обнаружении слабого сигнала (20 милливольт), генерируемого перемагничиваемым сердечником, и превращении его в 1-битный выход. Каждый канал состоит из дифференциального усилителя и буфера, за которым следуют дифференциальный трансформатор и выходной фиксатор. Слева 28-жильный гибкий кабель подключается к стеку памяти, подводя два конца каждого считывающего провода к схеме усилителя, начиная с модуля MSA-1 (усилитель считывания памяти). Отдельными компонентами являются резисторы (коричневые цилиндры), конденсаторы (красные), трансформаторы (черные) и транзисторы (золотые). Биты данных выходят из плат усилителя считывания через гибкий кабель справа.
Плата усилителя считывания в верхней части модуля памяти. Эта плата усиливает сигналы от сенсорных проводов для создания выходных битов
Драйвер линии запрета записи
Драйверы запрета используются для записи в памятьи находятся на нижней стороне основного модуля. Есть 14 линий запрета, по одной для каждой матрицы в стеке. Чтобы записать 0 бит, соответствующий драйвер блокировки активируется, и ток через линию запрета предотвращает переключение сердечника на 1. Каждую линию приводят модуль ID-1 и ID-2 (драйвер линии запрета записи) и пара транзисторов. Высокоточные резисторы 20,8 Ом в верхней и нижней части платы регулируют ток блокировки. 14-проводный гибкий кабель справа соединяет драйверы с 14 запрещающими проводами в стопке плат с сердечниками.
Запрещающая плата в нижней части модуля памяти. Эта плата генерирует 14 запрещающих сигналов, используемых во время записи
Память драйвера часов
Драйвер часов — это пара плат, которые генерируют сигналы синхронизации для модуля памяти. Как только компьютер начинает операцию с памятью, различные синхронизирующие сигналы, используемые модулем памяти, генерируются асинхронно драйвером часов модуля. Платы привода часов находятся в нижней части модуля, между стеком и платой запрета, поэтому платы плохо видно.
Платы драйвера тактовой частоты находятся ниже основного стека памяти, но над платой блокировки
Синие компоненты платы на фотографии вверху представляют собой многооборотные потенциометры, предположительно для регулировки времени или напряжения. Резисторы и конденсаторы также видны на платах. Схема показывает несколько модулей MCD (Memory Clock Driver), но никаких модулей на платах не видно. Трудно сказать, связано ли это с ограниченной видимостью, изменением схемы или наличием другой платы с этими модулями.
Панель ввода-вывода памяти
Последней платой модуля памяти является панель ввода-вывода, которая распределяет сигналы между платами модуля памяти и остальной частью компьютера LVDC. Зелёный 98-контактный разъём внизу подключается к шасси памяти LVDC, обеспечивая сигналы и питание от компьютера. Большая часть пластмассовых разъёмов сломана, из-за чего видны контакты. Распределительная плата соединена с этим разъёмом двумя 49-контактными гибкими кабелями внизу (виден только передний кабель). Другие гибкие кабели распределяют сигналы на плату X-драйвера (слева), плату Y-драйвера (справа), плату усилителя считывания (вверху) и плату запрета (внизу). 20 конденсаторов на плате фильтруют питание, подаваемое на модуль памяти.
Плата ввода-вывода между модулем памяти и остальной частью компьютера. Зеленый разъем внизу подключается к компьютеру, и эти сигналы направляются через плоские кабели в другие части модуля памяти
Вывод
Основной модуль памяти LVDC обеспечивал компактное, надежное хранилище. В нижнюю половину компьютера можно было поместить до 8 модулей памяти. Это позволило компьютеру хранить 32 киловорда 26-битных слов или 16 киловорд в избыточном высоконадежном «дуплексном» режиме.
Одна интересная особенность LVDC заключалась в том, что модули памяти можно зеркалировать для надежности. В «дуплексном» режиме каждое слово сохранялось в двух модулях памяти. Если в одном модуле произошла ошибка, правильное слово могло быть получено из другого модуля. Хотя это обеспечило надежность, оно сократило объём памяти в два раза. В качестве альтернативы модули памяти могут использоваться в «симплексном» режиме, причем каждое слово сохраняется один раз.
LVDC вмещал до восьми модулей памяти центрального процессора
Модуль памяти на магнитных сердечниках позволяет получить наглядное представление о времени, когда для хранения 8 КБ требовался 5-фунтовый (2,3 кг) модуль. Впрочем, эта память была весьма совершенной для своего времени. Подобные устройства перестали использовать в 1970-х годах с появлением полупроводниковых DRAM.
Содержимое оперативной памяти сохраняется при отключении питания, поэтому вполне вероятно, что модуль всё еще хранит ПО с момента последнего использования компьютера. Да-да, там можно найти что-то интересное даже спустя десятилетия. Было бы любопытно попытаться восстановить эти данные, но поврежденная схема создает проблему, поэтому содержимое, вероятно, не удастся извлечь из модуля памяти ещё десятилетия.
Что ещё полезного можно почитать в блоге Cloud4Y
→ Пасхалки на топографических картах Швейцарии
→ Компьютерные бренды 90-х, ч. 1
→ Как мама хакера проникла в тюрьму и заразила компьютер начальника
→ Диагностика сетевых соединений на виртуальном роутере EDGE
→ Как «сломался» банк
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью! Пишем не чаще двух раз в неделю и только по делу. А ещё напоминаем, что Cloud4Y может предоставить безопасный и надёжный удаленный доступ к бизнес-приложениям и информации, необходимыми для обеспечения непрерывности бизнеса. Удалённая работа — дополнительный барьер на пути распространения коронавируса. Подробности — у наших менеджеров.