A fistful of relays, или компьютер на электромагнитных реле. Часть 1 — АЛУ

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



Как все началось


А началось все с того, что я прочитал про компьютер на электромагнитных реле, созданный Гарри Портером – энтузиастом из университета Портленда. Вот его фотография рядом с этим компьютером:



Так как я увлекаюсь старыми компьютерами (часть моей коллекции можно увидеть в этом альбоме), то мне тоже захотелось создать что-то подобное. Я стал искать другие проекты и нашел многие

Другие современные компьютеры на электромагнитных реле


Часть из них более-менее повторяла проект Гарри, часть лишь демонстрировала то, что создание такого компьютера возможно. Например, DUO 14 Premium, показанный на картинке ниже, может выполнять программу, содержащую до 8 несложных команд.



Проект


Итак, я запланировал создать компьютер, похожий на HPRC. Хотелось, чтобы на нем можно было бы хоть что-то реальное посчитать, а также, чтобы все его элементы были наглядными – можно было бы проследить работу АЛУ, регистров, счетчика инструкций и т.п.

Начать изготовление я решил с АЛУ. Чтобы определить предъявляемые к нему требования, я в общих чертах разработал набор инструкций, а также прикинул какие понадобятся шины и сигналы. АЛУ имеет параллельную конструкцию (все биты вычисляются одновременно) и предназначено для 8-битных вычислений.

Я сразу решил, что нужно делать модуль вычитания. Во многих других компьютерах этот модуль не реализован, так как его работу можно выполнять с помощью отрицания и сложения. Таким образом, АЛУ будет выполнять следующие операции: сложение, вычитание (с переносом и без), логические И, ИЛИ, НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ, а также сдвиги вправо (с переносом или по кругу). Схемы для сложения и логических операций я взял из HPRC.

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

Так как АЛУ пока должен работать без других компонентов компьютера, поэтому для его отладки к катушкам реле подключены тумблеры, подающие на них питание. Результаты вычислений можно наблюдать с помощью светодиодов, подключенных к выходам схем. Независимо от защелкиваемого результата, вычислительные блоки работают постоянно, поэтому с помощью индикаторов можно одновременно наблюдать результаты всех операций.



Реле


Было выбрано напряжение питания 24 В, а не 12 В, как в большинстве других современных компьютеров на электромагнитных реле, чтобы сделать провода тоньше. Впоследствии оказалось, что у этого решения есть и недостаток – светодиодов со встроенным резистором, рассчитанных на напряжение 24 В не бывает, поэтому резисторы пришлось покупать и паять отдельно.

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

Уже после начала сборки компьютера я, читая один из блогов, осознал, что мне не хватает защитных диодов, предотвращающих появление дуговых разрядов и выбивание индикаторов при размыкании реле. Поэтому я купил 100 штук диодов 1N4448 и припаял их параллельно каждой из катушек.

Материалы


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

Все компоненты установлены на 6-миллиметровый лист оргстекла. Реле приклеены, а все остальное или установлено в специально просверленные отверстия, или привинчено. Пластины с надписями вырезаны из латуни. Самым сложным оказалось найти латунные болты подходящего размера для крепления табличек. В России нигде заказать не получалось, но потом я почти случайно нашел их в хобби-магазине в Хельсинки.

Работа


Начал я с того, что купил блок питания, три десятка реле, проводов, а также переключатели для управления входами и внутренними сигналами создаваемого АЛУ. Реле содержат по 4 двухпозиционных переключателя. В некоторых случаях все 4 переключателя не используются, но сэкономить, используя реле с меньшим числом контактов, практически не получится.


Эти реле обошлись мне примерно по 200 рублей, поэтому я стал искать варианты подешевле, так как на весь модуль АЛУ по предварительным подсчетам их требовалось около 100 штук. Одну партию в 100 штук мне удалось заказать по оптовой цене чуть больше 100 рублей за реле. Но у этого поставщика сами реле появиться должны были еще не скоро, поэтому я продолжил поиски.

Оказалось, что можно заказать реле напрямую из Китая значительно дешевле. Я заказал еще одну партию в 100 штук примерно по 1 доллару за штуку (доллар в то время стоил в районе 30 рублей). Впоследствии оказалось, что некоторые реле, полученные из Китая, заведомо бракованные. Например, на следующей картинке видно, что провода внутри реле перепутаны местами. К счастью, для исправления этого бага достаточно было аналогичным образом поменять местами внешние подключения к этому реле.


Кроме того, было довольно много реле с окислившимися контактами. В некоторых случаях это оказывалось критичным, и реле приходилось выкидывать. Но иногда все же удавалось перекинуть входы и выходы на другие контакты – свою роль сыграла избыточность реле с 4 переключателями.

При изготовлении корпуса пришлось осваивать несложные работы по обработке древесины, но больше всего времени заняла пайка – для многих реле пришлось припаивать провода ко всем 14 выводам.

Итоги


Статья получилась не очень длинной и слегка поверхностной. Больше информации можно найти на сайте проекта. Если у сообщества появится интерес, я могу написать больше о характеристиках и принципах работы как АЛУ, так и проектируемого компьютера.

С того момента, как я решил делать свой компьютер, прошло уже полтора года. За это время я в общих чертах спроектировал архитектуру и систему команд, а также создал первый модуль компьютера – арифметико-логическое устройство. Формально, конечно, в АЛУ используются полупроводники – в светодиодах для индикации и в защитных диодах. Но вся логика построена на электромеханических реле. В этом блоке не хватает только внешних соединений, но их я сделаю после того, как появятся другие блоки, к которым будет подключаться АЛУ. Следующим я планирую делать блок регистров.



Статистика


АЛУ состоит из 88 реле, отладочные сигналы подаются с помощью 43 тумблеров, выходы отображаются с помощью 70 светодиодов. Размеры блока – 74x56x14 сантиметров.

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

Затраты


  • Реле – 6120
  • Светодиоды – 2660
  • Тумблеры – 1510
  • Блок питания – 2520
  • Провода и другие детали – 1220
  • Таблички с надписями (материалы, гравировка и крепеж) – 3340
  • Материалы для корпуса – 4300
  • Итого – 21670

Пока получается раза в 2 дешевле, чем у Гарри. Сюда не включены припой и флюс, наждачная бумага, неисправные и испорченные детали, а также стоимость инструментов, которые у меня появились в процессе изготовления корпуса.

Что можно сделать лучше


По окончании реализации первого модуля моего компьютера я пришел к тому, что некоторые вещи можно было бы сделать лучше:
  1. Вероятно, количество используемых в АЛУ реле можно было бы уменьшить, объединив модули сложения и вычитания. Думаю, что таким образом можно было бы сэкономить 8 реле.
  2. При работе над следующим модулем нужно постараться сверлить отверстия аккуратнее. В этот раз некоторые из них получились с небольшими (и одно – с большими) трещинами.
  3. Практика показала, что в нашем городе не очень-то легко сделать качественную лазерную гравировку на латуни. Видимо, в следующий раз для изготовления надписей придется попробовать применить фотолитографию.
  4. Вероятно, для часто переключающихся схем, таких как тактовый генератор, придется использовать дублирование, так как реле показали себя не слишком надежными.


Ссылки


Сайт проекта: github.com/Dovgalyuk/Relay
Другие компьютеры:
Поделиться публикацией

Комментарии 60

    +27
    Где видео с чарующими щелчками реле?)
      +5
      Так он сам ещё щёлкать не может, это же только АЛУ. Только если руками тумблеры переключать быстро-быстро.
      +3
      а по времени сколько вышло столько спаять? да и видео демонстрации не хватает)
        +7
        Растянуто по времени всё было на несколько месяцев, чистое время не посчитать.
        +19
        Это прекрасно!
        Вы, главное, не женитесь не останавливайтесь!

          0
          Если автору найти подобную Лавлейс жену, то замечательно наоборот получится.
            +7
            Подобная Лавлейс жена уже найдена :)
          0
          Возможно, глупый вопрос — но почему нельзя без пайки?
            +3
            Можно без пайки, но будет вдвое дороже из-за панелек, в которые втыкаются реле.
              0
              Разве цоколь стоит, как само реле?
              Во всяком случае, с цоколями оно бы вышло намного ремонтопригоднее.

              Идеальный вариант — делать из таких или подобных реле:
              image

              У них уже есть светодиоды и дугогасительные диоды, получается очень плотный монтаж, питание можно мостиками раскидывать…
              Опять же, очень легко набирать нужное количество контактных групп простым подключением в параллель.

              PS я бы ни за что не решился делать такое без цоколей. Просто я достаточно поработал с электрикой и автоматикой :)))
          +1
          Судя по заглавной картинке потребляемая мощность 24 Вт?
            +1
            Да, в тот момент именно так. Блок питания рассчитан на 6.5 Ампер. Если включить все реле и почти все светодиоды (чего в реальности не будет), то потребляемый ток составит около 4 Ампер. Т.е. потребляемая мощность будет около 100 Ватт.
            +7
            Классная двусмысленность:
            как в большинстве других современных компьютеров на электромагнитных реле
              +12
              Оказалось, что можно заказать напрямую из Китая значительно дешевле

              Мне иногда кажется, что в этом вся суть современной экономики
                +2
                Я может быть чего-то не понимаю, но вот тут в России я нашёл по 23.18р за штуку: www.electronshik.ru/item/g5la1412dc-271686
                Если поискать, то, я думаю, можно ещё дешевле найти.
                  +3
                  Там один переключатель только. А я искал с 4 переключателями, прозрачным корпусом и светодиодом.
                +3
                Ожидал увидеть схемы… Но, увы… Даже на сайте проекта при беглом просмотре попалась лишь схема вычитателя…
                А в целом, очень интересно.
                  +4
                  Схемы я публиковал здесь: relay.sourceforge.net/wiki/index.php/ALU
                  А эту статью решил ими не загромождать. Если будут желающие об этом почитать — могу написать в отдельной статье немного деталей.
                    +1
                    Спасибо за ссылку! То, что надо!
                      +2
                      Я многое почерпнул из описания HPRC, опубликованного здесь
                      +1
                      Детали это всегда хорошо, писать стоит
                    0
                    > вычитание (с переносом и без)
                    А что такое вычитание без переноса?
                      +1
                      Имеются в виду инструкции типа SUB и SBC.
                      +1
                      Большой стимпанковский торт!
                        +1
                        А как вы сделали такие красивые золотые панельки?
                          +1
                          Панельки сделаны из латуни. Надписи — лазерная гравировка с последующим заполнением черной акриловой краской. В некоторых местах выгравировалось не очень глубоко, поэтому надписи не очень контрастные. Латунь была тонкая — 0,3 мм, поэтому вырезал обычными канцелярскими ножницами.
                          +1
                          Замечательно! Продолжайте!
                          Несколько месяцев назад я тоже впечатлился машиной Гарри и в особенности документации по ней. Вот в этой латухе он там буквально все на пальцах объясняет, да так хорошо, что наконец-то знания из академии встали на нужные полки.
                          Для себя в качестве реле решил выбрать более миниатюрные на 12 вольт, но пока не набрал критической массы даже для АЛУ. Эх, надо поскорее заканчивать Erlang'овый проект да переходить к relay. Есть у меня интересная идея по поводу поляризованных реле, которую хочу проверить на Verilog'е, и если все получится — можно будет подумать о железе.

                          Что на счет памяти решили? У Гарри ОЗУ — полупроводниковая микросхема.
                            +2
                            Если получится найти и заставить работать какой-нибудь старинный модуль с ферритовыми сердечниками, то его. Иначе — обычную SRAM, как и у Гарри.
                              +2
                              А такие маленькие реле мне напомнили этот компьютер: relaysbc.sourceforge.net/
                                +2
                                Для большей каноничности можно попробовать использовать FRAM
                                  0
                                  Можно и сделать модуль с ферритами, колечки, вроде, дешевые.
                                  0
                                  Шаговые реле — это уже энергонезависимая память :)
                                  +2
                                  Прочитал: «созданный Гарри Портером» как «созданный Гарри Поттером». (facepalm)
                                  Всё, пора спать.
                                    +4
                                    Я его фамилию первое время тоже так читал :)
                                      0
                                      Если только Гарри Поттером из «Методов рационального мышления» (hpmor.com)
                                      +1
                                      Интересно, а на этом АЛУ уже можно пересчитать смету расходов на его изготовление?

                                      А баги уже были? Реальные, шестиногие?
                                        +2
                                        Шестиногие не пройдут, потому что все реле в корпусах, а не бескорпусные, как в «те» времена.
                                        +2
                                        У меня мечта сделать то же самое из воды, трубочек, краников, и всяких деталюшек, прозрачных конечно. Водяной ток имеет общее с электричеством, диод можно сделать как лепестковый клапан, например. Чтобы детишки и студенты видели не только логику по горящим лампочкам, но и сам «ток».
                                          +2
                                          Было бы круто. А вот еще бывает такая суммирующая машина: woodgears.ca/marbleadd/
                                            +1
                                            О ДА! Автор этих деревянных вычислительных машин просто красавец — его канал на ютубе просмотрен мною целиком. Он сам себе кучу станков сделал из дерева для обработки дерева и не только — то есть, фактически, будучи запущен в пустую мастерскую с коробкой метизов и електродвигателей, через год он превратит её в полноценный цех обработки дерева/пластика и цех производства станков и мебели.
                                              +1
                                              Вот ещё в копилку безумия, сумматор из домино.
                                              +1
                                              Такое каждый год вижу на выставках систем автоматизации в Москве. Там и гидравлическая логика и пневматическая,… и не только логика уже даже…
                                                0
                                                Было такое. Кое как нашел в интернете хотя бы упоминание.
                                                1935 г. — В. С. Лукьянов изобрёл аналоговую машину на воде — гидроинтегратор.
                                                  +2
                                                  В жидкость можно добавить загуститель и блёстки, тогда будут видны «электроны».
                                                  +3
                                                  Вместо светодиодов ему бы тиратроны или неонки
                                                    0
                                                    Я за неонки! Это будет и ортодоксальнее )) И внешне очень не плохо. Не нужно будет ставить богомерзкие полупроводниковые диоды на катушки.
                                                      +1
                                                      Все равно диоды нужны, чтобы не искрило и контакты не подгорали.
                                                    0
                                                    А на транзисторах такое проще будет сделать?
                                                    0
                                                    Класс! А если использовать герконовые реле — не выйдет надежней, быстрее и дешевле?
                                                      +2
                                                      Ну сильно дешевле вряд ли. А вот наглядность функционирования потеряется.
                                                        0
                                                        Еще удавалось нагуглить пъезоэлектрические микрореле. У них лучше такие параметры, как габариты, скорость, кол-во переключечний.
                                                      0
                                                      Вопрос по схеме АЛУ. Вы использовали при ее проектировании какие-нибудь логические оптимизаторы? Один мой знакомый как-то изучал внутреннюю схему АЛУ какой-то американской фирмы. Эта схема была нагромождением логических элементов, и назначение отдельных ее элементов было недоступно пониманию человеческим умом. Там не было каких-то отдельных блоков сложения, вычитания и т.д. Одни и те же части схемы по-разному использовались в разных режимах работы. В этом и состоит преимущество АЛУ по сравнению с отдельными сумматорами и т.д. — меньшее кол-во логических элементов. Зачем вам нужны одновременно результаты сложения, вычитания и исключающего ИЛИ от чисел на входе АЛУ? Нужен ведь результат только одной операции. Быть может, учитывая это, схему можно удалось бы сократить.
                                                        0
                                                        Схему наверняка можно сократить. Но как избавиться от одновременного вычисления всех операций сразу?
                                                        Ведь вид операции, выполняемой схемой, определяется соединениями, а не программой, которую можно изменить.
                                                          +1
                                                          Представьте себе схему сумматора. Многобитный сумматор состоит из нескольких однобитных, между которыми распространяется сигнал переноса. Если вы добавите в схему сумматора по одному элементу «И» на каждый бит — то можно будет заблокировать сигналы переноса. В этом случае, в зависимости от состояния управляющего входа, вы сможете получить на выходе либо сумму входных чисел, либо их сумму по модулю 2, т.е. «исключающее ИЛИ». При этом ваша схема стала больше, чем схема просто сумматора или просто «исключающее ИЛИ», но зато она меньше, чем схемы обеих этих функций в сумме. И она может выполнять любую из операций в каждый момент времени. В таком духе следует добавлять в схему функции так, чтобы реализующие их элементы были общими для разных функций. Тем самым и получите АЛУ с оптимизированной схемой.

                                                          А что касается сдвига — то его лучше делать на сдвиговом регистре, а не АЛУ. Архитектура ранних процессоров обычно имела один привилегированный регистр — аккумулятор, который являлся реверсивным регистром сдвига, и именно на нем выполнялись эти операции.
                                                          +1
                                                          Наглядность потеряется, потому что в итоге будет один большой и непонятный Big Mess of Logic.
                                                          +1
                                                          А не было идеи упрятать провода в короба? Это добавит эстетики: релюшки останутся, а «бороды» из проводов уйдут из виду.
                                                          Либо, как альтернативный вариант, для разных целей используйте провода разных цветов (стоимость та же), объединяйте их стяжками и цепляйте бирочки «байт 1» (и тому подобное). Это вариант наиболее дешевый, зато наглядности на порядок добавит.

                                                          Спасибо за интересную статью. Это из раздела действий, о которых в тайне (или явно) мечтают большинство людей связанных с вычислительной техникой, но лишь единицы реализуют.
                                                            0
                                                            Да, про цветные провода была идея — сделать отдельно линии данных и управляющие сигналы. Но поленился :)
                                                            А стяжками провода и так объединены, без них бардака было бы больше.

                                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                          Самое читаемое