Как стать автором
Обновить

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

Архитектура фон Неймана? Управляющий автомат с жесткой логикой? Instruction Set на 5 инструкций (mov, add, and, not, jz)?
А что в 1K транзисторов входит, только АЛУ и управляющий автомат?

Извините, что так много вопросов. Интригующе звучит, а описание будущего процессора недостаточное. Границы задачи нужно четко очертить, ведь тонкостей сотни.
Верное замечание, запамятовал. Добавил абзац «Архитектура процессора».
В 1К — входит весь процессор, которых самостоятельно читает инструкции из памяти, и выполняет их — как и любой процессор.
Тут все будет фатально просто, «переключать потоки» — просто негде. 1 ALU, 1 регистр… :-)
ИМХО интереснее на ОУ сделать. И устройства ввода — потенциометры, тумблеры, переключатели. Устройства вывода — вольтметры, стрелочные, антуражные, еще и с теплой ламповой подсветкой…
А добавив генератор сигналов и осциллограф можно ф-ции интегрировать, дифференцировать… А сколько транзисторов придется напаять чтобы цифровой компьютер смог интегралы считать?
А вы разве не аналоговый вычислитель предлагаете? Аналоговый интегратор RC цепью делается или ОУ с конденсатором в обратной связи.
«Поскольку реальное аппаратное обеспечение состоит только из компонентов, описанных в главе 3, то теоретически после прочтения этой главы читатель сможет пойти в магазин, купить кучу транзисторов и сконструировать виртуальную машину Java для целых чисел. Тому, кто успешно выполнит это задание, будет предоставлен дополнительный кредит (а также полное психиатрическое обследование)»

Э.Таненбаум «Архитектура компьютера»


bash.im =)
Такс, а сколько там памяти по минимуму нужно для виртуальной машины Java?
BarsMonster
Сам книгу эту (ту откуда цитата) не читал, но Вам думаю было бы неплохо хотя-бы по диагонали её просмотреть, может мелочь полезная попадётся =)
Имхо, сначала лучше брать по минимуму — 4-ех битный проц, если хочется многа памяти — то окна еще никто не отменял. 16 битный адресный декодер на транзисторах собирать — это с ума сойдешь. Проц на транзисторах, все остальное — на обычных микрухаха пока. Клава моник — не нужен, достаточно пока сериал порта.
Я об этом думал, но логика очень уж усложняется. Допустим нам нужно 12-и битное адресное пространство, чтобы хоть что-то полезное сделать. Это 3 регистра на адрес… Жуть…

Даже с 8-и битными процессорами (адрес и данные по 8 бит) есть очень большие сложности из-за страниц. Никакого С-компилятора ждать не приходится.
Но ваще моя мечта — чтоб кто-то наладил мелко-серийный выпуск i8088, хорошо-бы с полной копипастой с оригинала. И клепать XT-шки в сборе, только с современными интерфейсами, то есть выход под VGA (с помощью конвертера с CGA), HDD — любой картой памяти, так же и флоп, можно даже сеть придумать RJ-45, пускай на 10 мб из которыз реально будет не больше 1. Все равно такую бы машину я бы щаз не думаю тыз за 10-12 купил.
Есть отдаленно похожее на эту идею:
en.wikipedia.org/wiki/Replica_1

Видел похожую штуку для 8088/8086, но не могу найти что-то.
Есть некий вариант компьютера с VGA и 8088/8086 на базе современных элементов (кроме процессора).
В чём проблема? Найдите в интернете как на плисине сделали 80186 процессор ) — парень даже игры на нём запускал ) вам даже сделают за 10 тышь рэ я думаю )
Ваше увлечение, безусловно достойно уважения, хотя вы и делаете в какой-то мере шаг назад.
Впрочем, если уж упираться в транзисторы, то тут можно вообще хардкор на КТ315/КТ361 замутить:

image

Хотя они, наверное, и не выпускаются уже.
Источник — Калькулятор «Электроника ДД», 1968 год.
Да, это я видел. Изначально была мысль на КТ315 сделать, но:
автоматической сборки c КТ315 не выйдет, и руками паять — в 3-4 раза дороже :-)
Ну и сами КТ315 дороже современных SMD транзисторов.
Как ни странно, афаик, КТ315 продолжает штапмовать тот же Интеграл и по сей день.
Эх, поленился переложить картинку на свой хостинг, а автор её убрал — видимо по причине хабраэффекта, ведь я и источник указал и копирайты не затирал вроде.
Вот мы о чём выше говорили:
image
Все на транзисторах, 1-2 КиБ памяти мне хватит

Хочу увидеть 3 тысячи дискретных транзисторов на одной плате.
Существуют разлчные соревнования на самый компактный код. А есть ли соревнования на самый компактный (по количеству транзистров), но всё ещё достаточно функциональный (скажем, вычисляющий n! для n<=10) процессор?
очень простой процессор типа AVR процессор помещается в ПЛИС 240 элементов.
http://marsohod.org/index.php/projects/plata1/66-makeavr
так что нечто вычисляющее вполне можно сделать на транзисторах.
Начинаю пороть чушь-->

Начнём с пунктов. Со всем согласен, кроме:
>> Практика показывает, что 64 КиБ памяти — реалистичный минимальный объем памяти. В 1-4 КиБ многое не влезет, потому уменьшать шину адреса меньше 16 бит не стоит.

Имхо притянуто за уши, может быть 14 бит хватит. Тут лучше себе заранее ограничений не плодить и иметь больший запас. Ну получится в начале 1-4 Кб — тоже хорошо.

>> Не слишком высокая цена.
У proof of concept может быть любая цена. Вы продавать его собрались? Сделайте сначала прототип, потом сделаете опрос в какую сторону характеристики его надо изменить, чтобы выпустить мелкую партию.

Теперь в целом:
Вы бы определились с понятием декоративный. Его надо конкретизировать. Чего хотите то (малиновые штаны, бассеин ПЖ)?

Я вижу такие варианты слову декоративный:
* Proof of concept современной автоматической сборки и транзисторов. Чисто для себя. Минимум транзисторов, минимум совместимости с процессорами прошлых лет, общение через терминал.
* Музейный экспонат. Требования: любая реализация процессора, но с возможностью подключить какой-либо серийный монитор и PS/2 клаву.
* Proof of concept чисто процессора. Ищем любое старое устройство на базе i8008, чиним и делаем ему эмуляцию процессора на транзисторорной логике. Дополнительные плюсы — нужно делать только процессор.
* Неплохой ограниченный компьютер с готовой кодовой базой — Собираем Altair-8800 (или что-то аналогичное). Плюсы: репортаж по ТВ, девочки, шампанское прилагаются.
* Сходим с ума. Делаем что-то под UCLinux и 32-бита. Пожизненное обожание, поклонение, книга рекордов Гиннеса.

--> Закончил пороть чушь.
«У proof of concept может быть любая цена. Вы продавать его собрались? Proof of concept современной автоматической сборки и транзисторов. Чисто для себя. Минимум транзисторов, минимум совместимости с процессорами прошлых лет, общение через терминал.
— роботом собрать 1шт нельзя, это будет фатально дорого. При моём количестве деталей (5000) — нужно собирать 10-100 шт и более. Естественно, его после этого нужно продавать.

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

Сделать i8080 на транзисторах не выйдет — как не старайся, меньше 3000-4000 не выйдет, т.к. размер схемы заточен под возможности микроэлектроники в то время. Т.е. все интегральные процессоры — весьма сложные на транзисторном уровне.

Я думаю вопрос готовой кодовой базы не существенен, если будет C-компилятор. Собрать нужный софт всем будет интересно.
значит в моем понимании ценный сам по себе, из-за того что он такой особенный, а не из-за работы, которую он выполняет. Это вопрос отношения к компьютеру, а не его внешних особенностей.

То есть некоторая гордость от того, что сам собрал компьютер со СВОИМ процессором.

При моём количестве деталей (5000) — нужно собирать 10-100 шт и более. Естественно, его после этого нужно продавать.

Тогда Raspberry+Arduino way на мой взгляд. То есть VGA + PS/2, программы прошиваются по одной и при включении идёт выполнение программы.
Автоматизировано паять — это хорошо. Оценивали возможность трассировки печатной платы? Есть подозрение, что для схем подобного масштаба будет большая проблема соединений между элементами, блоками.
Сейчас это не проблема вообще. 6 слоев на печатной плате — и можно развести что угодно (по крайней мере без BGA) :-)
А может всё-таки разбить на этапы? И для начала побыть Стивом Возняком? То есть собрать простенький компьютер на готовых микрухах под UCLinux 32bit?
На готовых — это каких?
TTL или CPLD/FPGA? :-)
Очевидно вам виднее.

Но если желание иметь транзисторный компьютер больше чем желание собрать просто компьютер, то видимо TTL.
Не — вещь крутая! НО проголосовал за «Куплю котика...»
Интересен сам факт существования — но дома такой компьютер ни к чему.
Был бы студентом — руки бы чесались сделать, Причем что то нестандартное — например троичную симметричную систему…
А почему бы вам (раз уж так хочется собрать себе компьютер) не совместить приятное с полезным и не построить компьютер на базе консервативной логики. И вклад в развитие интересной области внесете и радость себе доставити…
Конкретный способ реализации логики — это частности, я не ограничен никакими классическими подходами в реализации логических примитивов.
Если бы консервативная логика позволяла сократить количество требуемых транзисторов — она бы у меня и получилась.

А увеличивать количество транзисторов и соответственно цену ради развития интересной области — мне кажется сомнительным занятием, которое поймут очень немногие :-)
которое поймут очень немногие

А вы думаете ваш нынешний подход поймут очень многие? :-)
Я на самом деле с удовольствием прочитал из любопытства и уважения, это крутое хобби, тяжелая работа и я весьма смутно понимаю как это все вообще работает. Но все же вспоминается буханка и троллейбус. Но я ни в коем случае не говорю, что это плохо!
Ну, тогда правильнее сказать «поймут еще менее многие»
НЛО прилетело и опубликовало эту надпись здесь
Любая схема с >100 транзисторами — сомнительная по надежности, если её некачественно разработать.
И сделает ли увеличение схемы в 2-3 раза её более надежной за счет упрощения — еще вопрос.
>PS/2 клавиатуры уже редкость
существуют переходники
можно обойтись и без них, просто припаяв usb порт, но использовав его как ps/2
www.instructables.com/id/USB-to-PS2-convertor/
(в стандарте usb прописана поддержка мышей и клав ps/2, только ps2 заточен под это (частота опроса выше, нагрузка меньше, отзывчивость выше, схемотехника проще и тд), так что предпочитаю такие мыши и клавы)
Охренеть, и это работает с большинством клавиатур? Вот это сюрприз, спасибо :-)
Ну вот не надо «4кб мало» — демосценеры тапками закидают! :-D

ps: Хотя да, 64кб должно хватить всем.
Насчет 4кб — тут все еще усугубляется еще и тем, что плотность кода за счет простоты процессора намного меньше x86, раза в 3-4.
Т.е. 4кб будут эквивалентом 1кб памяти у x86.
Есть демки и по 128 байт.
мне кажется идея имела бы какой-то смысл если бы автор в своей модели попытался реализовать какие-то новые принципы работы вычислительных устройств, такие, которые нельзя реализовать с обычной логикой или FPGA.
Ну например, построить троичный компьютер.
Или вот еще другая идея http://marsohod.org/index.php/ourblog/11-blog/109-globalclock — донести сигнал клока (а этих проводов как правило очень много) до всех триггеров световым импульсом.
Автор, поддерживаю мнения многих комментаторов: раз уже беретесь за трудную задачу, не стоит упражняться в очевидном. Краткая сводка (собранная из комментариев к этой статье и не только) схемотехнических идей, не реализованных в «широком прокате», и которые было бы интересно обкатать в железе, раз уж вы все равно решили мучиться с дискретными транзисторами:

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

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

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

Аппаратная реализация машины Тюринга — это интересно. Программирование обещает быть весьма нетривиальным. Я писал возведение числа в квадрат на машине Тюринга — и это было весьма непросто.

Насчет клеточных автоматов — боюсь это крайне быстро надоест… Но возможно идея заслуживает классической реализации (МК + большая LED матрица).

Сам-то я не фанат троичной логики, но в порядке конструктивной дискуссии скажу, что троичная логика вроде бы потребует меньшего числа разрядов для представления того же диапазона чисел, чем двоичная. Может в сумме число транзисторов не увеличится. Но это все мелочи.

Аппаратная реализация Тюринга, по идее, это профит. Вся сложность переносится на алгоритмическую часть, т.е. на программиста и его кросс-компилятор на писишке. Число разрядов 1. Сложность схем управления наверное бедет минимальна. Кроме того, в данном случае сообщество не будет протестовать против применения памяти на микросхемах, желательно очень большого объема. Может даже последовательной памяти вроде SSD, так что не придется 32-разрядную адресацию паять на транзисторах.

Мотто может быть таким: вытрави однослойную плату ЛУТом, напаяй 30-40 транзисторов КТ315б вставь SD-карточку и скачай программу-компилятор для машин Тюринга. И у тебя собственный компьютер.
Простите, может вы лучше сделаете интерфейс к SD-карте, а экран — тоже какой нить на послед интрефейсе от мобилы
Я в детстве пытался на реле собрать 4x битный компьютер. У меня был ящик каких-то реле, 12V аккумулятор и куча проводов. И вот соединив пару десятков реле я подключаю всю эту кашу проводов к аккумулятору… Как они, блин, застрекочат все разом!
Чуть не обгадился.
НЛО прилетело и опубликовало эту надпись здесь
Насчет LFSR — поистине гениально :-) Хоть и есть возможность скрыть 16 тактов инкремента IP во время выполнения инструкций.
Пару мыслей:

1. полевые транзисторы наверное лучше, но они дороже
2. скорее всего вам будет важно как это «Ретро» будет выглядеть
3. лучше присмотреться к необычным архитектурам
4. троичная система действительно не так сложно реализуема если у вас двухполярное питание
5. Последовательные интерфейсы рулят — SD карта и клавиатура
6. УДАЧИ и УПОРСТВА вам желаю

ЗЫ а вот учёные печатают биопроцессор на бумаге — схожая задача на новый лад) посмотрите в сторону технологии печати транзисторов )
1. Не только дороже — но и медленнее (дискретные варианты), и есть проблемы со слишком высоким пороговым напряжением (1.5-2В), это делает многие компактные схемы не реализуемыми при 3.3В питании.
Эмм. А почему сумма % в голосованиях больше 100? Или у меня печаль со зрением и пора идти спать?..
55%(410) Ввод-вывод через последовательный порт и терминал
55%(404) Нужно подключение к монитору и клавиатуре — без настольного компьютера
Голосовать можно за несколько вариантов сразу просто
Спасибо за объяснение, видимо надо раньше ложится спать)
НЛО прилетело и опубликовало эту надпись здесь
4004 очень ограниченный процессор в плане функционала, и это при таком количестве транзисторов.

Я пока продолжаю верить, что смогу сделать последовательный 16-и битный процессор менее чем в 1000 транзисторов.

Тактовая частота логики на биполярных транзисторах — ограничена тормозным режимом насыщения. Так что в 80Мгц тактовой частоты я не особо верю :-)
НЛО прилетело и опубликовало эту надпись здесь
1. Паять SMD можно и больше чем 1 транзюк в минуту, особенно после первой сотни Проблема в том, что помимо транзюков — обвязки в среднем 5 деталей на транзюк.

Необходимость 16-и битника — для упрощения. Если шина данных меньше шины адреса — нужно сильно усложнять систему команд и увеличивать количество регистров. А у меня тут одного регистра вероятно хватит :-D

2. Палка о двух концах… Меньше ток — медленнее перезаряжаем паразитные емкости… :-) Ну и похоже, что даже с токами базы 0.1-1ма — все равно тормозить начинает.
НЛО прилетело и опубликовало эту надпись здесь
1. В ТТЛ микросхемах — все именно так плохо.
В КМОП — только полевые транзисторы, которых нужно много и в дискретном исполнении — они намного дороже.

Насчет регистров — да, PС и А, и на этом все :-) А все остальное — в память.
НЛО прилетело и опубликовало эту надпись здесь
Там транзисторы того-же типа вместо резисторов подтяжки используются, т.е. да, делить вдвое нужно в первом приближении.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Один из прорабатываемых вариантов следующий:
В 16-и битной команде ~ 2x5 бит — номера «регистров в памяти» с которыми мы работаем, 6 бит — опкод.

Команды выполняются по схеме:

mem[imm1] = ram[imm1] op ram[imm2]
if zero(ram[imm1]) jmp ram[imm2]
ram[ram[imm1]] = ram[imm2]
ram[imm2] = ram[ram[imm1]]

На последовательном процессоре — это будет требовать дикого количества тактов (64+), но зато регистров всего 2 (PC и TMP).
НЛО прилетело и опубликовало эту надпись здесь
С литерой? В смысле с immediate аргументом?
План был в том, что все константы — в отдельно слинкованной области памяти, и загружаются через обычное чтение памяти.
Но конечно, встает вопрос яйца и курицы :-)
Над вопросом нужно думать.
НЛО прилетело и опубликовало эту надпись здесь
Насчет архитектуры памяти — это я дописал в статью, в раздел архитектуры. Грубо говоря, ответ отличается в зависимости от того, обвязка процессора на микросхемах или транзисторах.

А насчет курицы и яйца — без immediate-значений — крайне затруднительно читать константы из памяти, ведь адрес констант в памяти — тоже должен быть константой.
Оригинальная архитектура у стековых компьютеров, когда операция проходит над вершиной аппаратного стека, но будет ли такая архитектура минимальной с точки зрения числа транзисторов — вряд ли
Извиняюсь за оффтоп, но стековые процессоры в этом плане видимо самые экономичные. Если сравнивать с процессорами, а не «трясинами Тьюринга» конечно.
В принципе, в пределах 1500 транзисторов организовать вполне себе 16-ти битный форт-процессор можно.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории