В память о лунной одиссее «Аполло»

Лунную одиссею «Апол­ло» не­воз­мож­но пред­ста­вить без од­но­и­мен­но­го ком­пью­те­ра, ко­то­рый осу­щест­в­лял по­лет­ную на­ви­га­цию к Лу­не и уп­рав­ле­ние при­лу­не­ни­ем на по­верх­ность спут­ни­ка Зем­ли. Это был один из пер­вых лег­ких и пор­та­тив­ных ком­пью­те­ров, по­ст­ро­ен­ных на боль­ших ин­те­граль­ных схе­мах: его вес со­став­лял не­мно­гим бо­лее 30 кг, а мес­та ему тре­бо­ва­лось мень­ше, чем се­го­дня за­ни­ма­ет деск­­топ. Не­о­быч­ной осо­бен­но­стью ком­пью­те­ра «Апол­ло» (Apollo Guidance Computer, AGC) бы­ло дол­го­вре­мен­ное за­по­ми­на­ю­щее уст­рой­ст­во — вну­т­рен­няя па­мять, по­стро­ен­ная на «про­шив­ке» мед­ны­ми про­вод­ни­ка­ми фер­ри­то­вых ко­лец. Этим, кста­ти, и до­сти­га­лась на­деж­ность и вы­со­кая плот­ность хра­не­ния про­грам­мно­го обес­пе­че­ния, оп­ре­де­ля­ю­щие его ком­пакт­ную ком­по­нов­ку. Рас­смот­рим схе­мо­тех­ни­че­ские под­хо­ды, ис­поль­зо­ван­ные в раз­ра­бот­ке под­си­с­те­мы па­мя­ти бор­то­во­го ком­пью­те­ра «Апол­ло».

В стираемой памяти Apollo Guidance Computer каждый сердечник хранил всего один бит информации, как и на представленном макете

 

По современным представлениям у Apollo Guidance Computer было очень мало памяти: 2048 слов в сти­ра­е­мой па­мя­ти ОЗУ и 36 864 жестко прошитых в ПЗУ. В 60-х годах большинство компьютеров (вклю­чая AGC) ос­на­ща­лись опе­ра­тив­ной памятью на ферритовых сердечниках. По­сто­ян­ная па­мять то­же ис­поль­зо­ва­ла фер­ри­ты, однако прин­цип хра­не­ния ин­фор­ма­ции там был другой: если в стираемой памяти каждый сердечник хранил всего один бит ин­фор­ма­ции, то ПЗУ хранило там невероятные 192 бита, достигая существенно бо­лее высокой плотности.

Технологическая хитрость заключалась в том, чтобы проложить как можно боль­ше проводников через каж­дый фер­ри­то­вый сердечник. При этом запись «единицы» вы­пол­ня­лась путем пропускания проводника че­рез магнитное кольцо, а «ноль» обходил его стороной. Этот про­цесс назывался «прошивкой», сохранив сей тер­мин до наших дней. Тща­тель­ная ук­лад­ка почти километра медного провода — и со­хран­ность дан­ных га­ран­ти­ро­ва­на на все времена!

Магнитные тороиды обладают несколькими свойствами, обеспечивающими хранение информации. Элек­т­ри­че­ский ток, те­ку­щий через проводник, намагничивает сердечник по часовой стрелке или против часовой стрел­ки в за­ви­си­мос­ти от его на­прав­ле­ния. Обычно все намагничивание выполняется одинаково, что для каждой ячей­ки эк­ви­ва­лен­т­но со­сто­я­нию «сброса». Когда тороид ​​намагничивается в противоположном на­прав­ле­нии, это на­зы­ва­ет­ся «установкой». Пе­ре­ход из од­но­го состояния в другое индуцирует не­боль­шое на­пря­же­ние в любом из проводников, про­хо­дя­щих че­рез маг­нит­ный сер­деч­ник. Усилитель рас­по­зна­ет об­на­ру­жен­ный сигнал и формирует на выходе за­дан­ный дво­ич­ный код.

Управляющий компьютер Apollo содержал шесть основных модулей с прошивками, каждый из которых хра­нил 6 ки­ло­слов программного кода. Почему ки­ло­слов, а не, например, килобайт? Дело в том, что AGC был 15-бит­ным ком­пью­те­ром и оперировал 15-битными словами. Сегодня ячейка хранения, размер которой не яв­ля­ет­ся сте­пенью двой­ки, вы­гля­дит немного странно, но в 60-х годах дизайн вычислительных машин под­стра­и­вал­ся под условия ре­ша­е­мых за­дач. А кро­ме то­го, у 15-битного слова был еще и бит четности, так что при желании его можно считать по­л­но­цен­ным двух­бай­то­вым словом.

Каждый модуль AGC содержал 512 магнитным сердечников, каждый из которых хранил 12 слов данных. Так и по­лу­ча­ет­ся, что в модуль заводилось 192 (12 × 16) проводника, проходящих либо через тороид, либо мимо не­го. Каждая груп­па из 16 проводников, формирующих слово, называлась «прядь» (strand), и таких прядей нуж­но было 12 групп. Это и обес­пе­чи­ва­ло плотность хранения в означенные 192 бита на один феррит, боль­ше просто фи­зи­че­ски не по­ме­ща­лось!

В системе хранения на магнитных сердечниках была использована необычная технология для организации доступа к конкретной ячейке (ферритовому кольцу). Вместо того, чтобы непосредственно фор­ми­ро­вать адрес нужной ячей­ки, ли­нии запрета бло­ки­ро­ва­ли пе­ре­клю­че­ние всех прочих ячеек, кроме вы­бран­ной. На при­ве­ден­ной ниже схеме ток на линии считывания (она изображена зеленым цветом) может потенциально ак­ти­ви­зи­ро­вать все сердечники. Однако через различные линии запрета (красные линии) течет ток в про­ти­во­по­лож­ном на­прав­ле­нии. Это ком­пен­си­ру­ет счи­ты­ва­ю­щий ток во всех сердечниках, кроме #2, поэтому только он и ак­ти­ви­зи­ру­ет­ся для доступа.

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

 

Линии данных (они на схеме показаны синим цветом), проходящие через сердечник #2, улавливают на­ве­ден­ное на­пря­же­ние (от импульса считывания, посланного по зелёной линии). Таким образом, шаблон крос­си­ров­ки линий дан­ных уп­рав­ля­ет тем, какие данные считываются с сердечника #2. Подводя итог, мож­но ска­зать, что за­пре­ща­ю­щие ли­нии оп­ре­де­ля­ют, какой сердечник выбран, а линии данных, заведенные в этот сер­деч­ник, определяют, что будет считано: ноль или единица.

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