nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 Apr 2024 22:30



Reply to topic  [ 255 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 17  Next
4-bit Processor 
Author Message
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
PS. И кстати говоря (см. выше), а каково мнение джентльменов по поводу
команд IN, OUT?

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


16 Jun 2011 19:30
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22537
Location: Silicon Valley
Reply with quote
Post 
VituZz wrote:
Lavr wrote:
PS. И кстати говоря (см. выше), а каково мнение джентльменов по поводу
команд IN, OUT?

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


Согласен - как показывает опыт 6502 и всяких РК-86 со Специалистами - без портов жить можно ;)

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


16 Jun 2011 19:53
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
VituZz wrote:
Lavr wrote:
PS. И кстати говоря (см. выше), а каково мнение джентльменов по поводу
команд IN, OUT?

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

Согласен - как показывает опыт 6502 и всяких РК-86 со Специалистами - без портов жить можно ;)

У меня есть только очень небольшое соображение contra: мне кажется, если
предполагается большая память, не доступная вся непосредственно, а только
постранично, удобнее, когда регистр страниц доступен по IN, OUT,
тогда память получается непрерывной, не так ли?

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

Насчёт префикса - мне думается, что F более удобный префикс, чем E, т.к.
однозначно отлавливается совпадением единиц.
Уточним - префикс действует только на одну команду?

NOP я предпочитаю, как 00Н (90Н у х86 для меня было просто плевком в душу).
Да так оно и логичнее "забить" NOP-ом ненужное в ПЗУ можно только нулями,
нежели единицами.


17 Jun 2011 02:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Lavr wrote:
Условные переходы предлагаю - только по выполнению условия.
JZ
JC
JM


А может как на пике? Skip if Zero и Skip if Not Zero?

Ну надо посмотреть как на схемотехнике отражается.
Пиковские Skip if Zero и Skip if Not Zero
и один безусловный JMР мне казались столь неудобны... :(


17 Jun 2011 02:53
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
А как вам вот это: http://www.wasm.ru/forum/viewtopic.php?id=8642?
Если баян (как вариант - боян :), пинать не более одного раза.


17 Jun 2011 03:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
А как вам вот это: http://www.wasm.ru/forum/viewtopic.php?id=8642?
Если баян (как вариант - боян :), пинать не более одного раза.

Shaos трактует боян по-местному... :wink: но я это видел.
Я лично приветствую все рассуждения в привязке к схемам, а то абстрактно
можно нарассуждать много, но это прерогатива математиков ИМХО.


17 Jun 2011 04:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Я посмотрел систему команд японской поделки - разумно: 15 4-битных команд плюс ещё 16 возможных после "префикса" E - всего выходит 29. Если завести второй префикс, то команд уже будет 14+16+16=46.

Что-то это мне вдруг напомнило!!! :lol:
Code:
4004 instruction set consists of 46 instructions:

Data moving instructions.
Arithmetic - add, subtract, increment, decrement.
Logic - rotate.
Control transfer - conditional (limited to current ROM), unconditional, call subroutine and return from subroutine.
Input/Output instructions.
Other - carry flag operations, decimal adjust, etc.

http://www.cpu-world.com/Arch/4004.html


17 Jun 2011 04:21
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Как и обещал, разместил некоторые из известных систем команд 4-битных
самодельных ЦПУ здесь:
http://www.nedopc.org/forum/viewtopic.php?p=90363#90363


17 Jun 2011 07:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Джентльмены, ну что-то надо решать со стеком. :roll:
Обзор систем команд показывает, что PUSH и POP зело непопулярны, кстати,
и в i4004 их тоже нет.
Поэтому вопросы такие - как аппаратно выполнить стек?
Как реализуем RET?
Может у кого есть схемотехнический пример?
Пока со всеми командами (кроме переходов) можно уложиться в 4 такта
при однофазной синхронизации.
Впрочем и переходы можно уложить в них, если вы согласны с моделью
памяти смещение-сегмент (отдельный регистр - щёлкать сегментами по 256).
У меня что-то красивых решений в схемотехнике стека пока не придумалось. :(

Пиковские Skip if Zero и Skip if Not Zero реализовать очень легко.
Это всего лишь за 4 такта увеличить программный счетчик PCL(ow).
Безусловный JMР по идее должен быть длинным, как и CALL. Обычно
их выполняют в два цикла.
Но если JMР аппаратно реализован, то условные JMР - по идее то же самое,
только с учётом флагов.
А вот CALL... он по сути JMР только надо успеть защелкнуть текущие PCL(ow)
и PCH(igh) изменяя указатель стека.
В принципе - склоняюсь к мысли VituZz-а - стек в отдельном пространстве
памяти со своим регистром-счетчиком стека, тогда и PUSH, POP сделать легче.
Отдельный корпус ОЗУ - сугубо под стек... вполне разрешимо...


17 Jun 2011 14:04
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
В книжке Щелкунова, Дианова "Микропроцессорные средства и системы" со страницы 21 есть некоторые соображения по набору регистров и системам команд. Я, как новичок в деле процессоростроения (и даже процессороэмуляции), несколько систематизировал свои знания. Если в двух словах, то стройная адресация и система команд возможны лишь начиная с 16-ти разрядов, более простые системы - результат компромиссов. Для 4-х разрядов это будут очень жестокие компромиссы. Поэтому, если компромиссов не избежать, я всё же склоняюсь к максимальной простоте нашего 4-разрядного детёныша динозавра. Если мы разрабатываем его в эмуляторе, то давайте сразу ограничимся 16-ю командами и минимальным набором регистров. Сделав работоспособную модель, можно будет её развивать дальше.


17 Jun 2011 22:36
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Если мы разрабатываем его в эмуляторе, то давайте сразу ограничимся 16-ю командами и минимальным набором регистров. Сделав работоспособную модель, можно будет её развивать дальше.

Работоспособную модель я уже сделал год назад зимой. Можешь взять её здесь,
http://www.nedopc.org/forum/viewtopic.php?t=9213
если есть желание, и - погонять. А можешь и доработать - она не совсем
закончена, но позволяет посмотреть реализацию узлов и команд.
Я как раз и хотел плясать не от нуля, а от "живой" модели, чтобы что-то
пробовать, приделывать и т.д.
К сожалению, у меня модель зело тормозит на ноуте 360 МГц, так что сейчас
переношу именно её в "Протеус" (У меня в модели и ПЗУ микрокоманд были на
диодных матрицах) :o .
Я тоже делаю процессор в первый раз, и навыки у меня - только от указанной
модели, на схему которой я ссылаюсь. Но она не с потолка взята, по моему
мнению, среди всего, что я рассмотрел, она довольно оптимальная, и имеет
все возможности расширения, как в развитый 4-бит, так и в 8-бит.

Впрочем, я своего мнения не навязываю, а наоборот, готов к любому
конструктивному диалогу.


18 Jun 2011 03:55
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Джентльмены, у кого-нибуть есть образец чисто аппаратной реализации какого-либо
популярного последовательного интерфейса: RS-232, SPI, FSK или чего-то
подобного?
Мне кажется недостойным атавизмом загружать память программ тумблерами
и кнопками в тот момент, когда наш процессор еще не способен загрузить
что-либо сам ввиду отсутствия программы.


18 Jun 2011 04:04
Profile
Supreme God
User avatar

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

Image

Видно, что без особых проблем мы сможем сделать шину команд-данных 16-разрядной.

Поскольку в прототипе стек никак не реализован, а возврат выполнен как
рестарт по фиксированному адресу, образца схемотехники стека я не имею.
Как мне кажется, аппаратный стек должен быть выполнен по такому-же принципу:
счетчик адреса стека + ОЗУ стека.

Если не использовать PUSH и POP, как в PIC, то счетчик адреса стека будет
работать только на инкремент и декремент, сохраняя в своём ОЗУ только
значения PCH(igh)-сегмента адреса и PCL(ow)-программного счётчика, который
на момент выполнения CALL, после выборки КОП CALL, уже априори содержит
адрес следующего КОП - а это и есть адрес возврата, который надо сохранить
в ОЗУ стека, и сдвинуть счетчик адреса стека на единицу.

Если у кого есть другие мысли о схемотехнике стека - готов выслушать.


18 Jun 2011 04:29
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Кстати - приведу живой, зримый и убеждающий пример, почему я склонился к
4-битной конструкции. 8-битное АЛУ на NAND, в том виде, как оно уже разработано,
займёт на макетке примерно столько места, сколько выделено на приведенном
здесь рисунке.

Image

Для всего ЦПУ УЖЕ остаётся очень мало места! Поэтому я и решил пойти на 4-битный
компромисс. Конечно, решение не окончательное, но габариты нас поджимают.

PS. Можно, конечно, свернуть это в 2 корпуса 74181 (К155ИП3), но тогда зачем
весь этот огород городился? :wink: - Не спортивно... :(


18 Jun 2011 06:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22537
Location: Silicon Valley
Reply with quote
Lavr wrote:
Джентльмены, у кого-нибуть есть образец чисто аппаратной реализации какого-либо
популярного последовательного интерфейса: RS-232, SPI, FSK или чего-то
подобного?


SPI

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


18 Jun 2011 07:35
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 255 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 17  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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.