Apollo Guidance Computer — архитектура и системное ПО. Часть 1

в 3:59, , рубрики: AGC, dsky, Аполлон, космонавтика, перепись идиотов, старое железо

Ссылка на часть 2

В предлагаемой вашему вниманию публикации рассмотрены основы архитектуры, аппаратной структуры, и структуры системного ПО бортового компьютера миссий Apollo — AGC (Apollo Guidance Computer). Тем, кто хочет изучить тему подробно, я рекомендую книгу [1] и другие материалы, ссылки на которые приведены в конце статьи.

Apollo Guidance Computer

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 1

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

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 2
Водоблок с трубками для подключения охлаждающей жидкости

Интересный факт: полное название компьютера, использовавшегося в программе Аполлон — AGC-4, так как имелись более ранние разработки. Его предшественник, AGC-3 был построен на феррит-транзисторных ячейках.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 3
Структурная схема системы навигации

Используемые сокращения:

AOT — Alignment Optical Telescope
LR — Landing Radar
RR — Rendezvous Radar
CDU — Coupling Data Unit
DSKY — (AGC) Display and Keyboard
LGC — LM Guidance Computer (or AGC)
PTA — Pulse Torque Assembly
IMU — Inertial Measurement Unit
PSA — Power Servo Assembly
OSS — Optical Subsystem
ISS — Inertial Subsystem
RS — Radar Subsystem
Технические характеристики

Спецификация

Длина слова: 16 бит (14 бит + знак + чётность)
Память: ROM (rope core) 36Kслов; RAM (core) 2Kслов
Цикл обращения к памяти (ROM и RAM) — 11,72 мкс
Устройства ввода-вывода: DSKY (два устройства в корабле)
Быстродействие: время сложения — 20 мкс
Тактовая частота: 2.048 МГц
Технология: биполярная РТЛ, планарные корпуса
Размеры: AGC — 24" x 12.5" x 6" (HWD) (61 см x 32 см x 15 см); DSKY — 8" x 8" x 7" (HWD) (20 см х 20 см х 18 см)
Вес: AGC — 70 фунтов (32 кг); DSKY — 17.5 фунтов (8 кг)
Напряжение питания 28 В.
Потребление: режим работы: 70 Вт @ 28VDC; режим ожидания 15.0 Вт
Количество произведённых устройств: AGC: 75; DSKY: 138
Стоимость: неизвестно. В 2009 году DSKY был продан с аукциона за $50788.

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

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 4
Рисунок AGC из технической документации

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 5
AGC в открытом виде

Корпус AGC состоит из двух половин, с установленными модулями. Половины корпуса имеют разъёмы, которыми соединяются друг с другом электрические цепи. В середине правой половины корпуса расположены модули ОЗУ, отсутствующие на фотографии. О них пойдёт речь ниже.

Основы схемотехники

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 6

Компьютер полностью построен на микросхемах, которые содержат по два элемента NOR-3 (тревходовое ИЛИ-НЕ), и выполнены по резисторно-транзисторной технологии. Схема микросхемы приведена на рисунке выше. Принцип действия такого элемента прост: если вывод 5 соединить с 0, а вывод 10 — с плюсом питания, то, если на входах 2-4 нули, то транзисторы 1-3 (если считать слева направо) будут закрыты, и на выходе 1 будет лог. 1, т.к. он притянут к плюсу резистором. Если хотя бы на один вход подать 1, то соответствующий транзистор откроется, и притянет выход 1 к нулю.

Легко видеть, что при соединении двух или более выходов этих элементов образуется функция AND (И). При этом достаточно оставить питание (вывод 10) подключенным только к одному элементу. Но иногда питание оставляют подключенным у всех элементов, соединённых выходами, это позволяет получить повышенную нагрузочную способность выхода.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 7

Элемент с неподключенным питанием изображается на схеме с заштрихованным концом (см. рис).

Первая версия компьютера содержала 4100 микросхем, по одному элементу ИЛИ-НЕ в каждом, во второй версии, которая использовалась в полётах, было 2800 микросхем, по два элемента ИЛИ-НЕ в корпусе.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 8

Память

Память AGC состоит из ОЗУ объёмом 2Кслова и ПЗУ объёмом 36Кслов. Под поле адреса отводится всего 12 бит, что позволяет адресовать 4Кслова, и память разделена на банки. Для переключения банков используется специальный регистр размером 4 бита, что даёт в результате 16битный адрес, позволяющий адресовать 64Кслов.

Более подробно банки памяти будут обсуждаться в разделе, посвящённом системному ПО.

ПЗУ

ПЗУ компьютера выполнено по технологии rope memory (см. фото внизу).

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 9

Внешний вид модуля Rope memory:

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 10

Принцип действия «верёвочной памяти» (rope memory) проиллюстрирован на рисунке снизу:

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 11

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

Общий объём ПЗУ AGC составляет 36,864 слов по 16 бит. AGC имеет 6 блоков ПЗУ, каждый по 6 килослов (т.е. около 12 кб). Через каждый сердечник пропущено (или не пропущено) до 192 проводов, кодирующих данные, т.е. каждый сердечник кодирует 192 бита.

Прошивка каждого блока ПЗУ занимала 8 недель и обходилась в $15000. Всё это делалось вручную.

ОЗУ

ОЗУ AGC имеет объём 2048 16-битных слов. ОЗУ компьютера выполнено на магнитных сердечниках, как и у большинства компьютеров того времени.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 12
Модуль ОЗУ, установленный в компьютер.

Видно, что модуль ОЗУ занимает ширину двух обычных модулей логики. ОЗУ состоит из «плоскостей» (planes), каждая из которых соответствует биту в слове данных, всего плоскостей 16. Каждая плоскость представляет собой решётку 64x32 кольца, всего 2048 колец. Через каждое кольцо проходит четыре проводника: координатные линии X и Y, линия считывания и линия запрета записи (inhibit line). Линии X и Y илут соответственно вертикально и горизонтально, линия считывания проходит через все кольца одной плоскости по диагональным направлениям, а линия запрета записи проходит также через все кольца плоскости вертикально.

Также плоскость называлась «ковриком» (mat). На рисунке ниже представлена одна плоскость размером 64x32 кольца.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 13
Схема укладки линии считывания

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 14
Модуль ОЗУ в разрезе

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 15
Модуль ОЗУ. Рентгеновский снимок

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 16
Модуль ОЗУ в открытом виде

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 17
Модуль ОЗУ в сборе

DSKY

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 18

DSKY расшифровывается как Display and Keyboard Unit, модуль дисплея и клавиатуры, и предназначен для обеспечения взаимодействия AGC и экипажа.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 19

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 20
DSKY в разобранном виде

По сути, DSKY является просто простым терминалом к AGC. Он построен на основе реле, которые переключают сегменты люминисцентного индикатора, питающиеся напряжением 250VAC частотой 800 Гц, и на транзисторах. В более поздних версиях DSKY электромеханические реле были заменены тиристорами, так как вносили существенную задержку при отображении информации.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 21
Структурная схема DSKY

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 22
Функциональная схема DSKY

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 23

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

AGC подаёт в выходной канал 010 (восьмеричный номер канала) 15-битное число. Биты 12-15 подаются на декодер, имеющий 12 выходов, включающих строки матрицы.

Также блок имеет отдельные индикаторы для отображения сигналов PROG, TRACKER, GIMBAL LOCK и NO ATT, и других сигналов.

Ввод информации осуществляется с клавиатуры. Каждая кнопка подсвечивается лампочками на напряжение 115VAC частотой 400 Гц. При нажатии каждой клавиши, кроме PRO, генерируется 5-битный код. Код подаётся на порт компьютера, и генерируется прерывание, по которому код считывается. Когда кнопка отпускается, генерируется специальный сигнал reset. Клавиша STBY используется для перевода компьютера в режим ожидания, и обратно в режим работы, при повторном нажатии.

Клавиатура имеет 10 цифровых клавиш, и 9 дополнительных клавиш: VERB, NOUN, CLR, PRO, KEY REL, ENTR, RESET, +, и -.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 24

Кнопки содержат переключающие контакты, включенные теким образом, чтобы исключить генерацию двух кодов одновременно (см. рисунок ниже). Коды клавиш поступают в порт ввода AGC.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 25

К цепи кнопок подведено напряжение +28В. Подключение к компьютеру выполнено следующим образом:

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 26

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

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 27
DSKY, вид сзади

Стандартной процедурой ввода команды в DSKY является последовательность: VERB-DIGIT-DIGIT, NOUN-DIGIT-DIGIT и ENTR. Это отражает идеологию взаимодействия пользователя с AGC: вводится глагол (VERB), и номер действия, которое нужно сделать, и существительное (NOUN), также кодируемое номером, которое указывает объект, на который направлено действие. Список кодов глаголов и существительных содержится в инструкции, которая была у астронавтов.

Нажатие кнопки VERB на клавиатуре очищает индикатор VERB. Затем астронавт вводит две цифры, которые интерпретируются как номер глагола, затем то же самое делается с существительным (NOUN). До тех пор, пока кнопка ENTR не нажата, коды можно исправить повторением ввода NOUN или VERB. После нажатия ENTR каждые 1.5 секунды мигают цифры на индикаторах VERB и NOUN, это означает, что оператор должен ввести данные, зависящие от операции. После этого начинается выполнение операции.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 28
Внутри DSKY

Данные могут вводиться в восьмеричной и десятичной форме. Компьютер считает, что если знак "+" или "-" не введён, то данные будут в восьмеричной форме. Если при вводе восьмиричного числа нажать кнопки 8 или 9, будет мигать индикатор OPR ERR. Если нажаты клавиши "+" или "-", то соответствующий знак появляется на дисплее, означая, что компьютер готов к приёму десятичного числа. Если оператор ошибся, он может нажать на клавишу CLR и повторить ввод. Нажатие на ENTR завершает ввод. Для сброса сигнала OPR ERR и возврата в режим ввода используется кнопка RSET.

Кнопка RSET используется для гашения всех предупреждающих сигналов: TEMP, GIMBAL LOCK, PROG, RESTART и TRACKER. Это может быть полезно для того, чтобы выяснить, был ли предупреждающий сигнал кратковременным или вызвавшая его ошибка присутствует в данный момент.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 29
Внутри DSKY

Декодер содержит четыре драйвера линий реле и диодную матрицу, а также ключи возбуждения строк релейной матрицы. Биты 12-15 выбирают один из рядов релейной матрицы.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 30
Декодер релейной матрицы

Рассмотрим, как включается ряд 1. Ему соответствует код 0001. Он подаётся через интерфейс A25 и разъём J9 на корпусе DSKY, и на линии CE225 — CE228. Сигналы подаются в инверсной форме, т.е. CE226 — CE228 принимают значение лог. 1, а CE225 — лог. 0. Логическая 1 на входе закрывает транзистор Q1, транзистор Q2 также закрыт, и транзистор Q3 открыт. Таким образом, для выходов X линий CE226-CE228 и для выхода Y линии CE225 состоянием будет лог. 1. Диодная матрица имеет 8 входов, подключенных к прямым и инверсным выходам транзисторных ключей (выходы X и Y на рисунке). В нашем случае диоды CR53 модулей D2, D3 и D4, а также диод CR63 модуля D5 должны быть смещены в обратном направлении. Если эти диоды закрыты, включается блок CKT004, возбуждающий ряд 1, при этом напряжение +28В проходит по цепи Q1 (CKT011), R8, CR44, R9 (CKT004) и открывает транзисторы Q4, Q5 (CKT004). Транзисторы, открывшись, подключают первый ряд реле к нулю, что означает, что ряд выбран.

Нижний ряд диодов в диодной матрице (CR54 в модулях D2-D5) используется для детектирования наличия лог. 0 в битах 12-15 канала 10. Если хотя бы один ноль присутствует, хотя бы один из диодов открыт и напряжение 0VDC подаётся на источник напряжения драйверов выборки строки. Если все четыре бита равны 0, то все четыре диода закрыты, и напрядение +28VDC приложено к входу драйвера питания. Транзистор Q2 открывается, и транзистор Q3 закрывается. Транзистор Q1 закрыт, и выход драйвера представляет собой разомкнутую цепь, и напряжение на драйвера строк не подаются.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 31
DSKY, вид снизу

Для управления индикаторами статуса и ошибок используется релейная матрица в модуле драйвера индикатора (рис. ). Кроме реле, она содержит 6 идентичных транзисторных драйверов (D1-D6).

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 32
Модуль драйвера индикаторов DSKY

Релейная матрица показана на рисунке ниже:

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 33
Релейная матрица

Каждый драйвер реле принимает от биты 1-11 канала 10. Рассмотрим бит 11 (цепь 006 в модуле D6). Если бит 1 канала 10 установлен в лог. 1, он в инверсном виде поступает в интерфейсную цепь A25, на разъём J9 в цепь CE224. Это открывает транзистор Q8, который закрывает транзистор Q9. Напряжение 28В присутствует на выводе 10 столбца реле, включающего знаки "+" и "-" на дисплее. Диодной матрицей выбирается строка. Путем выбора строки и столбца компьютер может переключать каждое единичное реле в матрице.

Реле матрицы управляют индикаторами DSKY. Ряд 12 управляет индикаторами состояния и аварийными сигналами.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 34
Коды матрицы реле

В таблице выше приведено соответствие между содержимым канала 10 и цифрой индикатора, управляемой соответствующим реле. Одной цифрой управляет пять реле. Биты 6-10 используются для управления первой цифрой, биты 1-5 управляют второй цифрой, бит 11 управляет знаком ("+" или "-"). Коды цифр приведены в таблице:

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 35
Коды цифр

Лог. 1 соответствует включенному реле.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 36

В таблице выше показаны соответствия кодов и индицируемых цифр.

Схема подключения индикаторов к реле приведена на рисунке ниже.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 37
Схема релейной матрицы индикаторов

Цепи состояния и аварийных сигналов состоят из драйверов и неполяризованных реле.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 38
Цепи состояния и аварийных сигналов

Например, когда сигнал ISS WARNING находится в лог. 0, он открывает транзистор Q13 и подаёт питание +28В на реле K21. Реле K21 включается и пропускает входной сигнал ALARM COMMON на дисплей и в секцию PGNCS как сигнал ISS WARNING.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 39
Кабель подключения DSKY к компьютеру и бортовым системам

Питание блока DSKY осуществляется напряжениями 28В и 14В постоянного тока, поступающими с компьютера, также подаётся сигнал синхронизации частотой 800 Гц, который используется для генерации напряжения 250VAC частотой 400 Гц для питания дисплея.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 40
Схема источника питания DSKY

Источник питания состоит из трёх двухтактных транзисторных каскадов, развязанных трансформаторами. На вход подаётся прямоугольный сигнал напряжением около 14В и частотой 800 Гц. Уровень напряжения может управляться с панели космического корабля и служит для регулировки яркости индикаторов. Трансформаторы T1 и T2 повышают напряжение, на выходе стоит дроссель с насыщением L2. Дроссель нужен для стабилизации напряжения на индикаторах. Индикаторы являются ёмкостной нагрузкой, величина ёмкости зависит от количества включенных индикаторов. Изменения в нагрузке вызывают изменение напряжения в цепи обратной связи, которое через мостовой выпрямитель подаётся на управляющую обмотку L2. Если включено больше индикаторов, напряжение на управляющей обмотке увеличивается, сердечник начинает входить в насыщение, если количество включенных индикаторов уменьшается, то напряжение на управляющей обмотке уменьшается, сердечник выходит из насыщения, таким образом напряжение на выходе поддерживается постоянным.

Apollo Guidance Computer — архитектура и системное ПО. Часть 1 - 41
Ранний вариант DSKY. Этот вариант не использовался в полётах.

Литература и ссылки:

1. The Apollo Guidance Computer: Architecture and Operation. Frank O'Brien, Springer Praxis Books, 2010

2. Принципиальная схема AGC

3. http://www.righto.com/ Блог с кучей статей по AGC

4. https://hackaday.com/2016/09/02/decoding-rediscovered-rope-memory-from-the-apollo-guidance-computer/ — Decoding Rediscovered Rope Memory From The Apollo Guidance Computer

5. https://hackaday.com/2016/07/05/don-eyles-walks-us-through-the-lunar-module-source-code/ — Don Eyles Walks Us Through The Lunar Module Source Code

6. https://github.com/chrislgarry/Apollo-11 — репозиторий с исходными кодами ПО

7. https://github.com/shirriff/rope-simulator — репозиторий со схемами симулятора ПЗУ.

8. https://dodlithr.blogspot.com/search/label/Apollo%20Systems — большая подборка материалов по AGC и DSKY.

9. http://www.ibiblio.org/apollo/ — онлайновый симулятор AGC.

10. https://github.com/virtualagc — репозиторий с множеством полезной информации, включая Verlog-версию AGC, а также схемы и платы реплики AGC, и оригинальные схемы AGC и DSKY (в репозитории https://github.com/virtualagc/virtualagc)

Автор: Владимир

Источник


* - обязательные к заполнению поля