Микрокомпьютер Gigatron — это минималистичный 8-битный ретро-компьютер построенный по необычному дизайну: в нём нет никаких сложных логических интегральных схем, нет даже микропроцессора! Его CPU построен на классических логических элементах серии 7400, также известных как микросхемы на ТТЛ-логике. По сути все элементы компьютера разом и есть процессор. Эти простые чипы не только формируют CPU, но ещё и выполняют все задачи, которые обычно требуют дополнительной периферии. Несмотря на простую и компактную конструкцию, Gigatron работает как 8-битный одноплатный микрокомпьютер, на котором можно играть в видеоигры.
Гигатрон — хобби-проект Уолтера Белгера, хакера, специалиста по информационной безопасности и ныне директора по информационной безопасности компании Philips. В этот понедельник 9 сентября Уолтер приезжает в наш Хакспейс, где будет рассказывать об устройстве Гигатрона, истории создания проекта и покажет его живьем.
Под катом подробнее про Гигатрон и анонс встречи с создателем в Москве.
Немного теории
Транзисторно-транзисторная логика — разновидность цифровых логических схем, построенных на основе биполярных транзисторов и резисторов. Название транзисторно-транзисторный возникло из-за того, что транзисторы используются как для выполнения логических функций (например, И, ИЛИ), так и для усиления выходного сигнала (в отличие от резисторно-транзисторной и диодно-транзисторной логики (ДТЛ)).
Упрощённая схема элемента 2И-НЕ
В основе ТТЛ-элемента лежит многоэмиттерный биполярный транзистор. Если хотя бы на один из его эмиттеров подано напряжение 0В — транзистор будет находиться в режиме насыщения и на его коллекторе будет присутствовать логический ноль. В зависимости от схемы входного и выходного каскадов, мы получим ту или иную логическую операцию нашего элемента.
Старый TTL-чип SN7400 выпущенный в 70-х годах
В 80-х годах на ТТЛ-чипах было произведено много игровых автоматов, а также некоторые бытовые компьютеры. Наиболее известных из них Apple I, над которым трудился Стив Возняк.
Пример такого компьютер Apple 1, он тоже сделан на TTL логике, но все же имеет микропоцессор.
Компьютер Apple I частично построен на TTL-логике но имеет микропроцессор
История создания
Автор изначального концепта — Marcel van Kervinck. Он собрал первый прототип Гигатрона на макетной плате. Весь процесс от разработки до конечного проекта зафиксирован здесь: hackaday.io/project/20781/logs
Компьютер работает на тактовой частоте 6.25 MHz и выполняет одну 8-битную операцию за цикл.
Первая версия гигатрона собранная на макетной плате
Почему такие старые чипы?
Авторы объясняют это так:
Из интереса, и чтобы лучше понимать базовую архитектуру компьютера. А также чтобы поковыряться с железом которое у нас было на тот момент. В декабре 2016 нас забавляла идея собрать компьютер на ТТЛ-чипах, который будет достаточно мощный для игры в крестики-нолики на LED-экране 8x8. В конце концов, нечто подобное должен сделать каждый инженер хотя бы раз в жизни.
Зачем все это нужно?
На гигатроне можно изучать фундаментальные принципы работы современных компьютеров и процессоров. Из-за того что все элементы компьютера достаточно примитивны, принцип их работы может понять даже начинающий инженер. К тому же это просто весело!
Что можно запускать?
Попробовать компьютер в работе можно на программном эмуляторе gigatron.io/emu
В стандартной прошивке доступны:
- Игра змейка
- Игра racer
- Игра крестики-нолики
- Игра тетрис
- Множество Мандельброта — программа для рисования фракталов
- Программа для просмотра изображений
- Загрузчик для программ
- Среда BASIC
- WozMon — классический редактор памяти и монитор памяти Стива Возняка для Apple I
Обзор от EEVblog
Обзор от The 8-bit Guy
Встреча с Уолтером Белгерсом в Москве
В понедельник 9 сентября в нашем Хакспейсе пройдет открытая встреча с Уолтером. Зарегистрироваться на встречу можно тут neuronspace.timepad.ru/event/1054393
Уолтер Белгерс (Walter Belgers) — один из создателей Гигатрона, хакер, работавший в информационной безопасности всю свою жизнь, в основном как пен-тестер, и в данный момент являющийся директором по информационной безопасности компании Philips. По совместительству, председатель Toool – Открытой Организации Взломщиков Замков (The Open Organization of Lockpickers). Уолтер паял еще в 70-х, но никогда до этого он не строил настоящий компьютер целиком.
___________________________________________________________________________________________________________________________________
Про Хакспейс Нейрон
Хакспейсе Нейрон — сообщество гиков и техноэнтузиастов в центре Москвы. У нас регулярно проходят мероприятия для людей увлекающихся технологиями и их нестандартным применением. В остальное время у нас всегда доступны рабочие места для инженеров: с паяльником, осциллографом и всем необходимым для DIY, конструирования и проектирования электроники. А еще у нас можно поиграть в приставки и настолки в творческом кругу задротов.
FForth
Некоторые статьи описания компьютера
Часть 1
Часть 2
Разрешение вывода картинки 160х120 (64color) вывод на VGA разъём, частота компьютера 6.25 МГц потребление <90 mA на выбранной серии логики для питания от USB (но может быть и 12,5МГц на другой серии логики, но и потребление значительно возрастает до ~500 -800 mA)
системный язык GTL с элементами дизайна унаследованные из Форт и Лисп инкапсулирующий простейшую аппаратную систему команд компьютера в некоторую более функциональную абстракцию vCPU (виртуальный процессор)
Gigatron on STM32F405
(также есть и его реализации уже на FPGA, а также стороняя разводка платы на Github в Eagle :)
Один из симуляторов данного компьютера
P.S. Репозиторий проекта на Github
Форум проекта
Проект, конечно, поражает необычностью реализованного дизайна компьютера и проработкой програмной части для выбранного аппаратного решения.
Автор вдохновлялся другими минималистическими реализациями компьютеров на ТТL логике.
Cenzo
"частота компьютера 6.25 МГц потребление <90 mA на выбранной серии логики для питания от USB" — 74HC это же аналоги наших К155? Фантастика какая то для рассыпухи на такой частоте.
shiru8bit
155-ые — это когда 74 без букв, а 74HC — это 1564, гораздо более быстрый КМОП аналог, до 30 МГц.
Cenzo
Тогда становится ясно почему так мало жрут, во времена спеков такие серии были нам недоступны
u_235
74HC — конец 80х.
FForth
Там ещё есть серии:
74AC — КР1554
74LS — КР555 (хорошо использовались при сборке ZX-Spectrum )
74ALS — КР1533
74AS — КР1530
74F — КР1531
74AC — КР1554
74S — КР531
74A — КР131
Ну и SN7400 — KP155, 74H — КР131, SN54 — КР133, SN54H — КР130, SN54S — КР530,…
по потреблению и быстродействию они все разные и, например, в «Чип и Дип» цены на них могут отличаться в разы!
Но, конечно, сборка на рассыпухе компьютера Gigatron не очень бюджетное занятие. (хотя казалось бы и найти полный комплект ещё тот квест, Spectrum проще было собрать в своё время, а сейчас МК контроллеры AVR, STM32, STM8, MSP430, PIC… всё вытеснили :)
Сами разработчики уже отправили больше 500-т комплектов потребителям и даже в крупные корпорации.
P.S. Но, вроде, 74HC совместима по входам с 74HCT (по выходам требуются дополнительные резисторы), но в схемотехнике данного компьютера (и западных традициях) смешивание серии одних элеиентов с другими в порядке вещей.
andy_p
> 74HC это же аналоги наших К155?
Ага. А доллары аналоги наших баксов.
Gaernebjorn
74HC вовсе не TTL, а CMOS (КМОП). Просто специально совместима с 74 TTL.
vital72
нет, 74HC не совместима, совместима только 74HCT
klkvsk
Чем-то напоминает компьютеры, которые делают из редстоуна в Minecraft – там тоже все строится на базовых логических элементах, нет готового микропроцессера.
FForth
Был до какой то версии в MineCraft проект RP2 (Red Power 2)
там был минимальный компьютер с MinOS (архитектурно вроде 6502 процессор)
Griboks
rmuskovets
Компьютер *построен* для изучения принципов работы современных компьютеров, но можно *также* использовать эмулятор для того, чтобы не «убить» реальную машину своими не тестированными программами. То есть эмулятор для изучения ОС компьютера или для тестирования. Также, следуя вашей логике, зачем такие проекты как qemu, virtualbox, vmware и другие?
Griboks
Следуя моей логике, для изучения компьютера достаточно эмулятора компьютера, а не покупать какой-то новый старый нетипичный неподдерживаемый компьютер, который ещё и спалить как пить дать.
p.s.
Сейчас бы дизлайкать цитату статьи, когда лайкаешь саму статью.
maxzhurkin
Ваш компьютер, ноутбук, планшет или смарфон тоже избыточен для написания злобных комментариев, но, тем не менее, он у вас есть.
P.S. Я это к тому, что не вам решать, делать кому-то компьютер из
говна и палокстаринных микросхем, или нетGriboks
А вы, наверное, хотите видеть только угодные вам комментарии? Я не решаю, что вам делать, а указывают на огромную проблему, про которую забыли написать в статье. Если вам кажется, что люди любят выкидывать деньги на ветер, то я готов рассказать им правду. Если вам понравилась эта «микросхема», не надо спрашивать у меня разрешения на её покупку, а я не буду спрашивать у вас разрешение на высказывание своей позиции.
maxzhurkin
А в каком месте я кому-то что-то запрещал?
Griboks
А в каком месте я кому-то что-то запрещал?
FForth
Если бы не было увлечённых инженеров, раздвигающих горизонт понимания технологий, то мы бы до сих пор считали на счётах. :)
Homebrewcpuring
P.S. Гдето на форуме Гигатрон была дискуссия о возможности сделать подобный дизайн компьютера в 1979г на имеющихся тогда комплектующих…
amartology
Что значит «необычный дизайн»? Тогда все вычислители строились так. (Немного) необычно было бы, если там был ТТЛ-процессор на одном чипе. А так люди взяли микропроцессорный комплект микросхем и собрали из него микропроцессор, вот это да.
Конечно, декодер инструкций прост, как пять копеек. И два чипа памяти тоже, но окей, они не являются логикой.
И самое главное: 74HC — это не ТТЛ. Они совместимы с классическими ТТЛ 74 серии по электрическим уровням, но начинка у них КМОП, что позволяет добиться гораздо лучших параметров по скорости и энергопотреблению.
vital72
строго говоря, по электрическим уровням с ТТЛ совместима серия 74HCT, а у серии 74HC чисто КМОП-овские уровни.
FForth
Необычность в том, что в качестве основы взята простейшая тьюринг полная система команд ядра компьютера и созданна система команд vCPU
(микропрограмма в терминологии дизайна микропроцессорных секций)
+ данное решение позволило и программно сделать вывод на VGA.
Если бы такой аппаратный дизайн ядра компьютера был доступен в ввиде одной микросхемы, то была бы возможность переопределять микропрограмму процессора в требуемую, хотя и заложенная архитектура в чём то ограничена в таком варианте, (подобие микропроцессорным секциям, но на на микросхемах малой интеграции)
но у разработчика была бы определённая гибкость в создании своего vCPU или попытке написания генератора кода на исходной доступной системе команд «регистровых» пересылок. Это уже близко к решениям использования FPGA, но в чём то проще, хотя и с ограничениями.
P.S. А так да, сделано всё по классике, но на рынке нет контроллеров с возможностью изменения штатно микропропрограммы контроллера.
Вроде ещё выпускаются многокристальные микропроцессорные секции, но доступны ли они «радиолюбителям» и какие у них скоростные характеристики и потребление?
Смогут ли они конкурентно «обойти» дизайн принятый в Gigatron проекте, если данную разработку выпустить в виде одной микросхемы.
О чём и речь выше решений на базе FPGA, но это несколько иная ниша и превращения конечного решения в ASIC дорого для радиолюбительских целей.
Дополнение на ответ ниже:
P.P.S. Что за ASIC может получиться, если пытаться реализовать функциональный вариант
проекта ZX-UNO (даже не представляю) и вряд ли окупаемо в малых потребительских тиражах.
amartology
2. Отлаживаете.
3. Переносите дизайн с ПЛИС в ASIC на каком-то дешёвом техпроцессе, производите. Стоимость производства полусотни штук будет в районе 5-10 тысяч евро.
4. Сравниваете получившееся с любым однокристалльным MCS51 или AVR8.
FForth
Зачем такие сложности?
Можно же «скорпусировать» в рамках одного корпуса и уже представленное решение Gigatron на базе использованых микросхем, возможно в чём то выиграв при этом в технико-технических характеристиках.
P.S. Какая получится конкуренция c MCS51, AVR… сложно сказать, т.к. в этом случае необходима оценка целевого использования процессора в решаемой задаче + с наличием какого то используемого сопутствующего инструментария (компиляторы, отладчики ...) но возможно какой то резон есть.
Возможно данное решение может ещё как то масштабироваться с использованием связки в несколько «Gigatron-микросхем».
Интересно как видят это разработчики.
Вот такой процессор-миникомпьютер уже встраивали в мышь 20-ть лет назад F21 in a Mouse
amartology
Как то, что у них хобби по сборке компьютера из микросхем, а не по разработке микросхем?
SergeyMax
gleb_l
О логических уровнях имеет смысл говорить на входе и на выходе элемента. Все, что внутри — это токи, а не напряжения. Потенциал же коллектора входного транзистора всегда практически постоянен, а вот ток через резистор в базе ответвляется либо в базу выходного (тогда на выходе лог. 0), либо в эмиттер(ы) входного (так как Uкэ насыщенного транзистора < Uбэ)
SergeyMax
О логических уровнях можно говорить где угодно, на то они и логические. И в данном случае речь именно о логическом нуле, который после инвертора станет логической единицей (и примет привычное физическое значение уровня напряжения).
gleb_l
Ну давайте попробуем. Случай 1 — все эмиттеры в 1, входной транзистор закрыт, через прямосмещенный диод база-коллектор и резистор в базе течёт открывающий выходной транзистор ток. Потенциал коллектора — порядка 0.7 вольт. Случай 2 — хотя бы один из эмиттеров в 0 — входной транзистор открыт, выходной закрыт из за отсутствия тока базы. Потенциал коллектора входного 0-0.5 вольта. Поставьте логический пробник на коллектор первого транзистора — что он покажет?
SergeyMax
Вы сосредоточились на физических уровнях, а я говорю о логических. Абстрагируйтесь от напряжений и токов, перейдите к бинарной логике.
gleb_l
Нашла коса на камень. Логический элемент — черный ящик, имеющий спецификации уровней физического интерфейса, соответвующих логическим уровням в выбранной логике (позитивной или негативной), и выполняемой логической функции.
Соответственно, снаружи элемента мы в большинстве случаев можем абстрагироваться от физических уровней (кроме исключений типа ОК/ОС и монтажного И/ИЛИ).
Если же рассматривается внутренняя структура элемента — то говорить о логических уровнях в местах, отличных от точек взаимодействия с внешним миром (то есть выводов черного ящика) мало смысла — так как физическая имплементация логики внутри может быть вообще говоря любой (например, внутри может быть четырехуровневая ячейка статической памяти, транслируемая парой компараторов в два выходных бита).
Тот факт, что в TTL-имплементации два ИТУТ-трехполюсника работают внутри ячейки в ключевом режиме, не делает попытку анализа напряжений или токов с точки зрения логических уровней, заметно более осмысленной. Физическую схему лучше рассматривать на физическом же уровне, оперируя физическими же параметрами и особенностями работы ее элементов. В случае ТТЛ, например, возникают вопросы — что обеспечивает надежное запирание выходного транзистора в случае нахождения МЭТ в насыщенном состоянии? Каким образом выходной транзистор находится в насыщении, когда МЭТ закрыт? Ответы на эти вопросы невозможно получить, оперируя логическими уровнями внутри схемы.
В КМОП-имплементации при этом внутренности лучше поддаются именно «логическому» анализу, так как ПТ, в отличие от БТ — трехполюснгики ИТУН-типа — и можно при определенных оговорках подменять понятия «напряжение» понятием «логический уровень» для простоты анализа.
И последнее — при этом я прекрасно понимаю, каков должен был быть ответ на Ваш исходный вопрос — в силу неточности перевода или неточности описания, естественно, имелся в виду уровень напряжения на коллекторе выходного транзистора :)
SergeyMax
claimc
Интересно, какая бы была производительность, если сделать подобный простейший компьютер, или, например, z80, в одном кристалле по сомой последней технологии. Может кто натыкался на подобные эксперименты?
Мне не дает покоя идея, что куча подобных простейших ядер, на одном кристалле, будет быстрее и дешевле чем любой из существующих процессоров.: ) нужно только придумать способ их взаимодействия без блокировок.
vital72
и с чего оно должно быть быстрее?
процессоры i8080 & Z80: несколько тактов на одну команду, отсутствует конвейер, нет кеша
современные процессоры: несколько команд за один такт, конвейер, внутренний кеш и ещё бог знает что для увеличения производительности.
qrck13
Z80 в теории проще раскочегарить до каких нибудь 10GHZ, т.к ядро маленькое и уложиться по таймингам прохождения сигнала — заметно проще.
А дальше — т.к ядро маленькое, то на современном тех процессе на площади 13x13мм из поместится десятки тысяч штук, этих ядер, да ещё и хватит места по 128kb SRAM на ядро. Вопрос только в том, что под такой монстр сложно будет найти задачи, которые эффективно его бы использовали… И если подумать… wait a minute… мы только что сделали GPU!
Paskin
Эти процессоры 8-ми битные, придется городить костыли для расширения адресного пространства и как-то их «спаривать» для расширения регистров.
amartology
Подобным образом делают обработку данных в видеокартах. Но с процессорами общего назначения такой фокус не прокатит, можете расслабиться. Дело именно в способах взаимодействия многих ядер, потому что производительность системы в целом растет слабее, чем линейно, с ростом числа ядер. Собственно, почитайте про суперкомпьютеры например, там то же самое концептуально, но с более сложными ядрами в системе.
FForth
Некоторое представление и ответ на вышеозначенный вопрос даёт, например,
процессор GA144 и вышедшие статьи по нему, но для массовки, предположу, существующие потребности перекрываются спектром существующих вычислительных решений вплоть до воссоздания нужной вычислительной архитектуры на базе микросхем FPGA.
SergeyMax
akaAzazello
Мне кажется, заголовок у вас получился в стиле жёлтой прессы — уже присутствует приставка «Микро\Мини», типично используемая в то время для компьютеров от DEC, но ещё нет слова «процессор» (который появился задолго до этого, и не в DEC)
qrck13
Тоже хотел об этом написать. Процессор там точно есть. Там нет _микро_процессора.
FForth
Фактически так и есть, сама плата и есть процессор, как описаны в
Электроника-60 его конструктивные варианты. (при использовании БИС — больших интегральных
микросхем)vitalyvitaly
В «Искре-226» и ее прототипе Wang-2200 микропроцессора вроде бы тоже не было. Причем собственно низкоуровневая архитектура, от которой юзер был отрезан (основным языком был Бейсик) и ассемблеры менялись несколько раз еще в семидесятых. Поздние модели архитектуры Wang, кстати, как я читал когда-то, перевели сначала на аппаратную, а потом и на чисто программную эмуляцию под X86.
reviakinea
Странно, что никто пока не упомянул Бена Итера (Ben Eater) и его breadboard computer. https://eater.net/8bit
Рекомендую к просмотру — очень увлекательно. Руки чешутся собрать нечто подобное.
vt1980
Как это нет сложных логических микросхем? Только из того что я смог рассмотреть: специализированные мультиплексоры, сумматоры, счётчики, декодеры, регистры различного типа. Если всё это реализовывать на базовой логике (И, ИЛИ, НЕ) то схема будет в разы больше. И ещё ПЗУ 1 мбит c 16-битными шинами адреса и данных. Где и реализована часть логики. В чём уникальность? Если нужно добиться минималистичности и безпроцессорности, то можно ПЛИС какой нибудь применить, они тоже древние. Если нужно показать устройство, то интересней было бы реализовать всё именно на базовых элементах ТТЛ (И, ИЛИ, НЕ), и не прятать часть логики в ПЗУ-ху.
FForth
Перечисленные микросхемы — это микросхемы средней степени интеграции также были (кроме линейки специализированных сумматоров) использованы, например, в клонах ZX-Spectrum, но в другом номенклатурном составе.
ПЗУ и для того служит, чтобы в нём размещать код процессорных команд описанных в руководстве, но она слишком минималистична, чтобы комфортно использовать при программировании на ней и поэтому автор дополнил её системой команд vCPU,
но достаточна, чтобы программно организовать вывод на VGA (в одном из режимов)
без использования буфера изображения.
P.S. ПЗУ можно заменить на ОЗУ добавив простой загрузчик начального кода на каком нибудь мелком контроллере. Ничто не мешает думать над различными «улучшениями» и использованием данной конструкции (у авторов же получилось, клавиатура у них подключена через ATyny контроллер, a, кто то даже сделал дополнительно отладчик на LPC контроллере).
В какую из «древних» ПЛИС вместится данный дизайн? (и какого она года выпуска и сейчас, скорее всего, не производимая)
ZX-UNO хороший проект данного плана.