nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 05:58



Reply to topic  [ 23 posts ]  Go to page 1, 2  Next
J.Clark Scott CPU 
Author Message
Fanat

Joined: 18 Feb 2019 15:46
Posts: 64
Reply with quote
Не знаю - в какую ветку написать. Вроде эта соответствует.
Попалась схема процессора:
может кто-нибудь знает что это и где найти инфо ?
Attachment:
cpu-.png
cpu-.png [ 628.36 KiB | Viewed 10740 times ]


16 Mar 2022 03:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
ra3qdp wrote:
Попалась схема процессора:
может кто-нибудь знает что это и где найти инфо ?

Ну это не совсем "схема процессора"... это что-то типа блок-схемы с элементами схемы...
Либо это какой-то учебный материал, типа иллюстрации работы процессора, либо это -
скриншот опять же какой-то учебной программы-симулятора простого процессора.

_________________
iLavr


17 Mar 2022 01:24
Profile
Fanat

Joined: 18 Feb 2019 15:46
Posts: 64
Reply with quote
почему Вы решили, что это не полная схема ?

Я не вижу возможности в этой схеме выставить 16-ти разрядный адрес (за 2 раза, а 256 адресов как-то маловато),
а Вы видите ?


17 Mar 2022 02:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
ra3qdp wrote:
почему Вы решили, что это не полная схема ?
Потому что я знаю, как выглядит полная схема.

ra3qdp wrote:
Я не вижу возможности в этой схеме выставить 16-ти разрядный адрес (за 2 раза, а 256 адресов как-то маловато),
а Вы видите ?
А здесь такой возможности, судя по всему, и нет.
Это что-то такое демонстрационно-учебное, насколько я вижу...

_________________
iLavr


17 Mar 2022 04:59
Profile
Fanat

Joined: 18 Feb 2019 15:46
Posts: 64
Reply with quote
жаль, что про приведенной схеме никто так и не опознал - что это.


17 Mar 2022 05:40
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
ra3qdp wrote:
жаль, что про приведенной схеме никто так и не опознал - что это.

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

Чтобы было понятно, в чем дело, это рисунок вот такого типа.
Attachment:
image023.jpg
image023.jpg [ 10.7 KiB | Viewed 10682 times ]

_________________
iLavr


17 Mar 2022 06:58
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
ra3qdp wrote:
жаль, что про приведенной схеме никто так и не опознал - что это.
Почему же, опознали: это не схема, и сделать это по этой картинке возможности нет.
Потому как отдельные части этого рисунка - просто коробки с названиями, а не элементы.

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

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

Но что-то у нас похолодало... я надумал в воскресенье лениться, валяться на тёплом диване, и чтобы
совсем уж не бездельничать, я почистил слегка эту блок-схему, чтобы надписи не мешали... :wink:
Attachment:
cpu-2.png
cpu-2.png [ 646.92 KiB | Viewed 9862 times ]

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

Это оказалась книга: But How Do It Know? -
The Basic Principles of Computers for Everyone.

by Scott, J Clark
Attachment:
cpu-book.jpg
cpu-book.jpg [ 61.11 KiB | Viewed 9862 times ]

Судя по всему, есть и сайт, где изложенный в книге материал популяризируют:
http://www.buthowdoitknow.com/cpu_build.html

По крайней мере из видео с этого сайта я вновь вытащил искомую схему в черно-белом виде: :wink:
Attachment:
cpu-maxresdefault.jpg
cpu-maxresdefault.jpg [ 216.07 KiB | Viewed 9862 times ]

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


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

Возможно, Shaos нам сможет помочь эту, судя по всему, интересную книжечку скачать и полистать? :ebiggrin:

_________________
iLavr


12 Sep 2022 12:34
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
У меня в Firefox качнулось в 2 щелчка мыши :roll:

_________________
:dj: https://mastodon.social/@Shaos


13 Sep 2022 22:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
ra3qdp wrote:
почему Вы решили, что это не полная схема ?
Потому что я знаю, как выглядит полная схема.
Пока не было книжки, я прикидывал, как бы я заполнил некоторые "коробочки" этой блок схемы... :wink:

В частности, вот эта коробочка, названная автором "stepper" ("шаговик" :lol: ) у меня сомнений практически не вызывала:
Attachment:
Т-Stepper0.PNG
Т-Stepper0.PNG [ 21.04 KiB | Viewed 9798 times ]

Я бы впихнул туда счетчик со сбросом и дешифратор, как чаще всего и делают. В частности, в EDUC-8
в этой позиции стоит счетчик, совмещенный с дешифратором
.

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

Я смоделировал "stepper" в Proteus, но не стал делать D-триггеров из NAND, а поставил обычные 7474.
Attachment:
Stepper_CPU.zip [58.65 KiB]
Downloaded 237 times

На удивление - весьма неплохо работает! :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

_________________
iLavr


14 Sep 2022 05:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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
Attachment:
Compair.PNG
Compair.PNG [ 38.55 KiB | Viewed 9724 times ]
Attachment:
Compair1.PNG
Compair1.PNG [ 54.46 KiB | Viewed 9724 times ]
И называет он всё это "компаратор"...

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

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

В архиве - авторский вариант "компаратора" и вариант попроще:
Attachment:
comparator_CPU.zip [95.44 KiB]
Downloaded 224 times

_________________
iLavr


16 Sep 2022 15:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
...это не схема, и сделать это по этой картинке возможности нет.
Потому как отдельные части этого рисунка - просто коробки с названиями, а не элементы.

Но некоторые рациональные зёрна у автора почерпнуть всё же можно...

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

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

Но как сделать clk и задержать его, я думаю, кто умеет - смогут, а вот дальше - тот самый полезный
авторский трюк, который мне и понравился.
С помощью простой схемы:
Attachment:
clk3.png
clk3.png [ 9.84 KiB | Viewed 9657 times ]

автор сформировал из clk и clk_d ещё два сигнала: clk_e и clk_s:
Attachment:
clk4.png
clk4.png [ 59.61 KiB | Viewed 9657 times ]

Их смысл - clk_enable и clk_strobe, то есть сигналы разрешения выдачи на шину и строб записи данных с шины.

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

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

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

Опять же, кто знает схемотехнику... :wink: потому как именно с регистрами у автора - самая большая
засада в этой книге, для всех, кто решит, что всё понял, но со схемотехникой не знаком. :esmile:

_________________
iLavr


20 Sep 2022 05:39
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
...именно с регистрами у автора - самая большая засада в этой книге, ...

И засада эта вот какая.

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

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

Далее автор рассказывает, что нужно уметь выключать "байты" по выходу, и вводит 8 штук элементов AND:
Attachment:
REG2.png
REG2.png [ 37.38 KiB | Viewed 9655 times ]

Эту сборку он называет E - Enable, "разрешатель" по выходу, если хотите... :wink:

В итоге автор соединяет вместе B и E, получив, по его мнению, R - Register. :roll:
Attachment:
REG3.png
REG3.png [ 26.57 KiB | Viewed 9655 times ]

С точки зрения понимания для людей, далёких от схемотехники, - всё логично и понятно. 8)

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

Складывается такое ощущение, что автор стремился рассказать доходчиво широкому кругу далёких от
электроники людей, и при этом совершенно не рассчитывал он, что кто-то надумает повторить его выкладки
в железе в виде конкретных микросхем. :-?

_________________
iLavr


20 Sep 2022 06:23
Profile
Fanat

Joined: 18 Feb 2019 15:46
Posts: 64
Reply with quote
Lavr, если Вы уже прочли ВСЮ книгу, то ответьте, пожалуйста на заданный мной вопрос о возможности в этой схеме выставить 16-ти разрядный адрес.


20 Sep 2022 09:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
ra3qdp wrote:
Lavr, если Вы уже прочли ВСЮ книгу, то ответьте, пожалуйста на заданный мной вопрос о возможности в этой схеме выставить 16-ти разрядный адрес.

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

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

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

Инструкций вызова подпрограмм и возврата из них типа CALL ADDR и RET в устройстве
также принципиально нет, как факт.

_________________
iLavr


20 Sep 2022 10:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
ra3qdp wrote:
Lavr, если Вы уже прочли ВСЮ книгу, то ответьте, пожалуйста на заданный мной вопрос о возможности в этой схеме выставить 16-ти разрядный адрес.
На заданный вами вопрос конкретно ответ следующий: в устройстве, являющемся моделью самодельного
процессора, рисунок которого опубликован в этом топике, 16-ти разрядный адрес выставить принципиально невозможно.

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

Image

Очевидно, что адрес принципиально 8-ми разрядный.

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

Я после своего 4-битника планировал по накатанной дороге 8-битник сделать на основе такой идеи:
Attachment:
12bitADR.PNG
12bitADR.PNG [ 20.17 KiB | Viewed 9596 times ]

Идея, собственно, была почерпнута из КР1816ВЕ35/39/48/49.

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

С 4096 байтами памяти - хоть что-то типа контроллера получится! :wink:

_________________
iLavr


13 Oct 2022 12:54
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 23 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.