J.Clark Scott CPU

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

ra3qdp
Fanat
Posts: 87
Joined: 18 Feb 2019 15:46

J.Clark Scott CPU

Post by ra3qdp »

Не знаю - в какую ветку написать. Вроде эта соответствует.
Попалась схема процессора:
может кто-нибудь знает что это и где найти инфо ?
cpu-.png
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

ra3qdp wrote:Попалась схема процессора:
может кто-нибудь знает что это и где найти инфо ?
Ну это не совсем "схема процессора"... это что-то типа блок-схемы с элементами схемы...
Либо это какой-то учебный материал, типа иллюстрации работы процессора, либо это -
скриншот опять же какой-то учебной программы-симулятора простого процессора.
iLavr
ra3qdp
Fanat
Posts: 87
Joined: 18 Feb 2019 15:46

Re: Подборка процессоров на россыпухе

Post by ra3qdp »

почему Вы решили, что это не полная схема ?

Я не вижу возможности в этой схеме выставить 16-ти разрядный адрес (за 2 раза, а 256 адресов как-то маловато),
а Вы видите ?
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

ra3qdp wrote:почему Вы решили, что это не полная схема ?
Потому что я знаю, как выглядит полная схема.
ra3qdp wrote:Я не вижу возможности в этой схеме выставить 16-ти разрядный адрес (за 2 раза, а 256 адресов как-то маловато),
а Вы видите ?
А здесь такой возможности, судя по всему, и нет.
Это что-то такое демонстрационно-учебное, насколько я вижу...
iLavr
ra3qdp
Fanat
Posts: 87
Joined: 18 Feb 2019 15:46

Re: Подборка процессоров на россыпухе

Post by ra3qdp »

жаль, что про приведенной схеме никто так и не опознал - что это.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

ra3qdp wrote:жаль, что про приведенной схеме никто так и не опознал - что это.
Почему же, опознали: это не схема, и сделать это по этой картинке возможности нет.
Потому как отдельные части этого рисунка - просто коробки с названиями, а не элементы.

Чтобы было понятно, в чем дело, это рисунок вот такого типа.
image023.jpg
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

Lavr wrote:
ra3qdp wrote:жаль, что про приведенной схеме никто так и не опознал - что это.
Почему же, опознали: это не схема, и сделать это по этой картинке возможности нет.
Потому как отдельные части этого рисунка - просто коробки с названиями, а не элементы.
Но сама блок-схема весьма неглупая, человек, сведущий в схемотехнике, по ней нарисовать схему
принципиальную электрическую задуманного автором учебного DIY-компьютера сможет.

Я с самого начала прогнал это изображение через поисковики, но - безуспешно... :(

Но что-то у нас похолодало... я надумал в воскресенье лениться, валяться на тёплом диване, и чтобы
совсем уж не бездельничать, я почистил слегка эту блок-схему, чтобы надписи не мешали... :wink:
cpu-2.png
После чего я окончательно убедился, что блок-схема из какой-то учебной литературы, и возможно,
у автора есть анимированная модель, где подсвечивается прохождение сигналов.
Я решил прогуглить по характерным названиям на блок-схеме: ALU, CONTROL UNIT, IAR.
Этого неожиданно оказалось Гуглу достаточно и источник картинки я нашел! :kruto:

Это оказалась книга: But How Do It Know? - The Basic Principles of Computers for Everyone. by Scott, J Clark
cpu-book.jpg
Судя по всему, есть и сайт, где изложенный в книге материал популяризируют:
http://www.buthowdoitknow.com/cpu_build.html

По крайней мере из видео с этого сайта я вновь вытащил искомую схему в черно-белом виде: :wink:
cpu-maxresdefault.jpg

 ТО САМОЕ ВИДЕО ПРО DIY-CPU

Есть у меня предположение, что на следующей странице эта книга или часть её есть в формате .pdf
https://pdfroom.com/books/but-how-do-it ... k2AqOee2PJ
Но у меня какие-то траблы с открытием этого ресурса... :(

Возможно, Shaos нам сможет помочь эту, судя по всему, интересную книжечку скачать и полистать? :ebiggrin:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Подборка процессоров на россыпухе

Post by Shaos »

У меня в Firefox качнулось в 2 щелчка мыши :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

Lavr wrote:
ra3qdp wrote:почему Вы решили, что это не полная схема ?
Потому что я знаю, как выглядит полная схема.
Пока не было книжки, я прикидывал, как бы я заполнил некоторые "коробочки" этой блок схемы... :wink:

В частности, вот эта коробочка, названная автором "stepper" ("шаговик" :lol: ) у меня сомнений практически не вызывала:
Т-Stepper0.PNG
Я бы впихнул туда счетчик со сбросом и дешифратор, как чаще всего и делают. В частности, в EDUC-8 в этой позиции стоит счетчик, совмещенный с дешифратором.

Но автор этой конструкции решил иначе: "stepper" у него выполнен на сдвиговом регистре, собранном
буквально на NAND-ах! :roll:
Т-Stepper1.PNG
Я такого решения, честно говоря, не встречал, поэтому интересно стало посмотреть на этот узел в действии.

Я смоделировал "stepper" в Proteus, но не стал делать D-триггеров из NAND, а поставил обычные 7474.
Stepper_CPU.zip
На удивление - весьма неплохо работает! :o
Правда RESET по схеме автора сбоит, но я подхалтурил общий сброс через входы /RES D-триггеров 7474.

Откровенно говоря, повторять эту конструкцию на рассыпухе я бы не советовал. :-?
С таким количеством регистров с Z-состоянием выхода можно состряпать более интересный DIY CPU!
Чем-то это напоминает затею Ч.Петцольда "Код" - интересно, доделал его кто-либо? :roll:

Но можно невозбранно поиграться моделью в LogiSim: http://www.buthowdoitknow.com/cpu_simulator.html

И онлайн симуляция на JS есть: http://www.buthowdoitknow.com/cpu_model_intro.html

На FPGA умельцы также проект воплотили: http://github.com/patrickleboutillier/jcscpu-hw
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

Shaos wrote:У меня в Firefox качнулось в 2 щелчка мыши :roll:
Это потому что я решил не ждать, когда (и если) ты поможешь,
а просто упорно поискал её сам и вставил сюда прямую ссылку, откуда скачать... :ebiggrin:

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

Разработчик ведь должен "уметь много гитик!" :wink:

Но пока он меня удивляет в совершенно обратную сторону... :(

В АЛУ он вытащил весьма корректно два флага - Z и C причем само АЛУ совершенно без затей
сделал самым тривиальным способом:"каждой твари по 8 штук" :esmile:

Я, когда делал в древние года АЛУ на NAND, хотя бы пытался ужаться и сэкономить корпуса,
учитывая хотя бы факт, что в сумматоре уже есть XOR и NAND...

Но это ладно... а вот дальше начинается самое удивительное! :o
Известно, и я надеюсь, что не только мне, что флагов Z и C достаточно, чтобы определить
любое отношение между двумя аргументами А и В на входе АЛУ.

Но автор книги совершенно непонятно с какой целью вводит в и так "жырное" АЛУ еще два флага:
А = В (Equal) и А > В (A larger)! :esmile:
Причем делает это вокруг функции XOR и подсыпает в схему 8-разрядного АЛУ немало вентилей! :o
Compair.PNG
Compair1.PNG
И называет он всё это "компаратор"...

Ну еще о полезности флага А > В (A larger) можно спорить, возможно, он отчасти полезен...
Но вот флаг А = В (Equal) - это просто непонятно... :-?
У автора есть нормальная, неразрушающая команда CMP A,B - тут уж если А = В, то мгновенно
флаг Z сработает! 8)

Ну и если присмотреться к авторской конструкции этого узла под названием "компаратор", он и в него,
на мой взгляд, сыпанул вентилей излишне щедро... :-?

В архиве - авторский вариант "компаратора" и вариант попроще:
comparator_CPU.zip
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

Lavr wrote:...это не схема, и сделать это по этой картинке возможности нет.
Потому как отдельные части этого рисунка - просто коробки с названиями, а не элементы.
Но некоторые рациональные зёрна у автора почерпнуть всё же можно...

Мне лично очень понравилось решение, которое автор ввёл сразу, поскольку об этот момент я сам очень
спотыкался, когда конструировал свой собственный 4-bit Processor... :-?

А сделал он вот что: наряду с тактовым сигналом clk он сформировал задержанный clk_d:
clk0.PNG
Ниже диаграммы "типо схема", как он это сделал... :lol:
Почему я и говорю, что повторить DIY-CPU автора возможно лишь хорошо зная схемотехнику, хотя на
уровне понимания автор постарался изложить всё очень наглядно! :wink:

Но как сделать clk и задержать его, я думаю, кто умеет - смогут, а вот дальше - тот самый полезный
авторский трюк, который мне и понравился.
С помощью простой схемы:
clk3.png
автор сформировал из clk и clk_d ещё два сигнала: clk_e и clk_s:
clk4.png
Их смысл - clk_enable и clk_strobe, то есть сигналы разрешения выдачи на шину и строб записи данных с шины.

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

Поэтому, строя дешифратор команд, а автор его сделал аппаратным - что тоже интересно, хотя и весьма
увеличивает объём элементов супротив ПЗУ микрокоманд, так вот автор раздаёт дешифратором эти стробы
clk_e и clk_s регистрам источнику и приёмнику на шине.

Получается, что транзакция по шине у него происходит за один такт, что очень эффективно!
И главная прелесть в том, что взаимное расположение сигналов clk_e и clk_s позволяет
совершенно не мучиться с выбором регистров: они могут быть как с записью по фронту, по срезу, так и
по уровню. Если регистр без тристабильного выхода, можно поставить связку регистр+шинный буфер.

Опять же, кто знает схемотехнику... :wink: потому как именно с регистрами у автора - самая большая
засада в этой книге, для всех, кто решит, что всё понял, но со схемотехникой не знаком. :esmile:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

Lavr wrote: ...именно с регистрами у автора - самая большая засада в этой книге, ...
И засада эта вот какая.

Поскольку автор популяризатор, он доходчиво показывает, как сделан параллельный регистр:
REG1.png
где М - это D-триггер со статическим управлением, я показал его в постах выше.
На мой взгляд, автор не заморочил бы никому голову, если бы назвал вещи своими именами:
D-триггер или прозрачный "флип-флоп", как принято в западной литературе.

Но автор упрямо придерживается своей терминологии: М - это Мemory - элемент памяти,
объёмом в 1 бит
. Ну ладно... :-?
То, что на картинке выше из 8 элементов М - собственно, и есть параллельный регистр, но автор
решил назвать его B - Byte, понятно, байт. :roll: Ну и это ещё не страшно...

Далее автор рассказывает, что нужно уметь выключать "байты" по выходу, и вводит 8 штук элементов AND:
REG2.png
Эту сборку он называет E - Enable, "разрешатель" по выходу, если хотите... :wink:

В итоге автор соединяет вместе B и E, получив, по его мнению, R - Register. :roll:
REG3.png
С точки зрения понимания для людей, далёких от схемотехники, - всё логично и понятно. 8)

Но дальше автор вот эти самые регистры вешает на общую шину и начинает конструировать свой CPU! :o
Ни слова о тристабильном состоянии выходов или о шинных буферах у автора просто НИГДЕ НЕТ!
Ну или хотя бы об элементах AND с открытым коллектором и линиями шины, притянутыми резисторами
к потенциалу +5 В.

Складывается такое ощущение, что автор стремился рассказать доходчиво широкому кругу далёких от
электроники людей, и при этом совершенно не рассчитывал он, что кто-то надумает повторить его выкладки
в железе в виде конкретных микросхем. :-?
You do not have the required permissions to view the files attached to this post.
iLavr
ra3qdp
Fanat
Posts: 87
Joined: 18 Feb 2019 15:46

Re: Подборка процессоров на россыпухе

Post by ra3qdp »

Lavr, если Вы уже прочли ВСЮ книгу, то ответьте, пожалуйста на заданный мной вопрос о возможности в этой схеме выставить 16-ти разрядный адрес.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

ra3qdp wrote:Lavr, если Вы уже прочли ВСЮ книгу, то ответьте, пожалуйста на заданный мной вопрос о возможности в этой схеме выставить 16-ти разрядный адрес.
Я не прочёл ВСЮ книгу, потому что более 50% книги - полная ерунда для совсем далёких от электроники людей.
Я просмотрел внимательно всё, что касалось схемотехники устройства, рисунок которого вы запостили в топик,
чем меня и заинтересовали отчасти.

На заданный вами вопрос конкретно ответ следующий: в устройстве, являющемся моделью самодельного
процессора, рисунок которого опубликован в этом топике, 16-ти разрядный адрес выставить принципиально невозможно.

Вот команда прямого безусловного перехода JMP ADDR для этого устройства:
JMP1.png
Очевидно, что адрес принципиально 8-ми разрядный.

Инструкций вызова подпрограмм и возврата из них типа CALL ADDR и RET в устройстве
также принципиально нет, как факт.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Подборка процессоров на россыпухе

Post by Lavr »

Lavr wrote:
ra3qdp wrote:Lavr, если Вы уже прочли ВСЮ книгу, то ответьте, пожалуйста на заданный мной вопрос о возможности в этой схеме выставить 16-ти разрядный адрес.
На заданный вами вопрос конкретно ответ следующий: в устройстве, являющемся моделью самодельного
процессора, рисунок которого опубликован в этом топике, 16-ти разрядный адрес выставить принципиально невозможно.

Вот команда прямого безусловного перехода JMP ADDR для этого устройства:

Image

Очевидно, что адрес принципиально 8-ми разрядный.
Но довольно-таки несложно можно расширить адресную шину до 12 бит и адресовать уже 4096 байт памяти.
В инструкции не задействованы 4 бита - можно их использовать как адрес.

Я после своего 4-битника планировал по накатанной дороге 8-битник сделать на основе такой идеи:
12bitADR.PNG
Идея, собственно, была почерпнута из КР1816ВЕ35/39/48/49.

Но от этой идеи я отказался: 8-битник с 4096 байтами памяти - это некомильфо... :(
Но тут-то и вовсе - 8-битник всего с 256 байтами оперативной памяти! :o
Это просто за гранью добра и зла, если учесть, что АЛУ - параллельное и 8-битное! :esurprised:

С 4096 байтами памяти - хоть что-то типа контроллера получится! :wink:
You do not have the required permissions to view the files attached to this post.
iLavr