Тому, кто увлекался вычислительной техникой в начале 1970-х, добраться до настоящей машины было почти невозможно: собственный компьютер оставался фантастикой, а машинное время на чужом приходилось выпрашивать. К середине десятилетия ситуация начала меняться — появились Mark VIII, Altair, Apple I и ещё несколько машин, — но стоили они всё ещё серьёзных денег. И вот в конце 1976 года журнал Popular Electronics вышел со статьёй, обещавшей «мощный и расширяемый» компьютер, который можно собрать за 80 долларов. Так началась история COSMAC Elf, которой в этом году исполняется полвека.

Самодельный компьютер COSMAC Elf на процессоре RCA 1802 с тумблерами и индикаторами

Автором той публикации был Джозеф Вайсбекер — и большинство читателей тогда даже не догадывались, что перед ними инженер компании RCA, стоявший за самим процессором, вокруг которого и строилась конструкция. Речь о RCA 1802. Подробный разбор истории этой упрямой маленькой машины выпустил видеоблог Tech Time Traveler; ролик доступен в конце материала.

реклама кормит Уточку 🦆

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

Чем 1802 отличался от 8080 и Z80

С точки зрения человека, который сам паяет и пишет код, процессор получился одновременно удивительным и очень ограниченным. В те годы, когда на рынке безраздельно царили Intel 8080 и Zilog Z80, у 1802 был встроенный контроллер прямого доступа к памяти — DMA прямо в процессоре. Именно это позволило сделать предельно дешёвый видеоконтроллер-компаньон: он просто вычитывал байты из памяти и выдавал их на обычный телевизор, не требуя ни отдельной видеопамяти, ни сложной логики. Для домашней конструкции конца 1970-х такой подход экономил и деньги, и место на плате.

Вторая заметная особенность — регистровый файл. Регистры у 1802 шестнадцатибитные, и их шестнадцать штук, что для восьмиразрядной машины того времени было щедростью. Любой из них мог выступать, например, счётчиком команд или индексным регистром для доступа к памяти. Но у медали была и обратная сторона: аппаратного стека для вызова подпрограмм и возврата из них попросту не существовало.

реклама кормит Уточку 🦆

Задумка состояла в том, чтобы под разные подпрограммы отводить разные регистры. Для совсем простых программ это работало и даже экономило такты, но в общем случае схема разваливалась. Поэтому любой программист под 1802 рано или поздно узнавал про SCRT — «стандартную технику вызова и возврата», набор служебных процедур, описанный в фирменном руководстве RCA. Работала она надёжно, однако платой за универсальность была цена самих вызовов: они обходились заметно дороже, чем на конкурирующих процессорах с аппаратным стеком.

Почему процессор пережил свою эпоху

Отдельная причина долголетия 1802 — технология изготовления. В отличие от «горячих» биполярных и NMOS-конкурентов, он выпускался по КМОП-технологии: потреблял мало, работал в широком диапазоне напряжений и, что важно для полностью статической схемы, не терял содержимое регистров при сколь угодно медленном тактировании. Такое сочетание оказалось востребовано далеко за пределами радиолюбительского рынка — прежде всего в аппаратуре, где важнее не быстродействие, а живучесть и предсказуемость.

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

реклама кормит Уточку 🦆

История на этом не закончилась. Компьютеры на базе 1802 собирают до сих пор — как точные реплики оригинальной конструкции из журнала, так и современные вариации на печатных платах вместо монтажа навесом. Параллельно существует множество программных эмуляторов, позволяющих поиграть с архитектурой вообще без паяльника. Для тех, кто хочет разобраться в устройстве компьютера «снизу вверх», Elf остаётся редкой удачей: машина достаточно проста, чтобы понять её целиком, и при этом достаточно настоящая, чтобы на ней действительно что-то считать.

Подробный рассказ об истории COSMAC Elf, о самом процессоре и о том, как машина выглядела в работе, — в видео ниже.