Компьютер На Луне



Компьютер на Луне

На днях президент США Барак Обама закрыл новую лунную программу США.

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

Но я хочу немного написать об этом.

Я хочу вспомнить первую попытку человека высадиться на Луну и компьютерные технологии, которые сделали это возможным.

Многие наверняка помнят, что американская лунная программа называлась «Аполлон», а некоторые, возможно, даже видели фильм «Аполлон-13» с Томом Хэнксом в главной роли о драматической судьбе тринадцатой миссии программы «Аполлон».

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

Это компьютер, о котором я хочу поговорить.



Компьютер на Луне

(Компьютер управления «Аполлон» с клавиатурно-дисплейным модулем.

Источник .

) AGC — Apollo Guidance Computer был первым цифровым бортовым компьютером, построенным на интегральных схемах.

Он устанавливался на борту командного и лунного модулей и отвечал за навигацию и управление кораблем.

AGC стал первым компьютером, в котором можно увидеть прототип современных встроенных систем.

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

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

Основой компьютера были логические блоки ИЛИ, построенные на резисторно-транзисторной логике (как рассказал нам преподаватель схемотехники, схемы RTL грелись хуже, чем современные компьютеры).

Существовали две версии AGC — ранняя BLOCK I и более поздняя BLOCK II. Первая версия имела 4100 интегральных схем, вторая — 5600. Процессор оперировал 16-битными словами, из которых 14 бит использовались для данных, один бит — для знака и один — для флага переполнения.

Объем ОЗУ составлял 2048 слов, а объем ПЗУ – 36 килослов (72 килобайта для облегчения понимания).

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



Компьютер на Луне

(Увеличенный участок ферритовой матрицы.

Источник .

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

Он также имел ряд вспомогательных регистров для управления банками памяти, адресации и ввода-вывода.

Набор команд состоял из 12 инструкций — арифметических инструкций, инструкций управления, доступа к памяти и логического поразрядного И.

Естественно, все расчеты проводились с числами с фиксированной точкой.

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

АРУ также имело 20 независимых ячеек памяти, которые могли работать в трёх режимах в зависимости от сигналов на их входах — возрастающего счётчика, убывающего счётчика и сдвигового регистра.

Переполнение счетчика могло вызвать прерывание — в частности, так было устроено обновление дисплея и часов.

Они срабатывали при переполнении счетчиков, управляемых аппаратными часами в сто герц.

АРУ работало на частоте 2,048 МГц — такой обычный микроконтроллер по нынешним меркам.

И эта штука направила на Луну корабль с тремя астронавтами на борту и посадила лунный модуль.

Также компьютер имел режим пониженного энергопотребления (при полной нагрузке он потреблял 70 Вт).

В этом режиме компьютер фактически был выключен, потреблял 5-10 Вт и просыпался каждые 1,2 секунды.

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



Компьютер на Луне

(Начало списка программы Лунного модуля для миссии Аполлон-13. Источник .

) Когда была создана AGC, такого программного обеспечения или методов программирования не существовало.

Программное обеспечение было написано на ассемблере.

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

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

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

(Все это мне напомнило активные задачи Symbian с их планировщиком, активными объектами и его вариациями - таймерами).

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

на панели компьютера.

Если этот индикатор погас, это означало, что компьютеру делать нечего :) Также в MIT была разработана виртуальная машина для AGC, которая позволяла запускать программы, написанные на языке более высокого уровня.

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

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

Чтобы облегчить жизнь программистам, была создана система контроля версий YUL.

Компьютер на Луне

(Панель управления АРУ в командном модуле.

Источник .

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

Давайте подробнее рассмотрим систему отображения и ввода.

Управление АРУ и удобство использования — вещи несколько несовместимые.

Все управление осуществлялось с помощью цифровой клавиатуры по типу калькулятора.

Космонавт мог указать действие (глагол) и то, над чем должно быть выполнено действие (существительное).

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

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



Компьютер на Луне

(Памятка со списком «глаголов» и «существительных» на панели командного модуля.

Источник .

) АРУ с честью выполнила возложенные на нее задачи и даже использовалась на начальном этапе разработки электродистанционной системы управления шаттлом (АРУ была установлена на экспериментальном F8 для демонстрации возможности использования СДСУ).

Не обошлось и без ошибок - при первой высадке на Луну сработало два сигнала о нехватке памяти и вычислительных ресурсов - как выяснилось позже, программа "Лунный модуль" продолжала обрабатывать данные радара сближения с командным модулем, для чего потребовалось 14% вычислительных ресурсов, а для запуска программы потребовалось 90% ресурсов.

По совету с земли астронавты проигнорировали эти сигналы и осуществили успешную посадку на Луну.

Позже эта программная ошибка была исправлена.

AGC, а точнее LGC — Lunar Guidance Computer можно смело назвать первым компьютером на Луне и, дай Бог, не последним.

Если вам интересна эта тема, советую посетить этот ресурс (англ.

) — имеется много материалов по вычислительным системам Apollo и Gemini, включая руководства по ассемблеру и листинги программ.

Или просто поговорим об AGC/LGC Apollo. Кстати, один сумасшедший построил в 2004 году свой аналог АРУ :) Теги: #Луна #ИТ-история #Аполлон #AGC #НАСА высадка на Луну

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.