nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 16 Dec 2018 00:30



Reply to topic  [ 9 posts ] 
PC - CNT vs REG+ALU? 
Author Message
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2150
Location: От туда
Reply with quote
Post 
Чето всех прибивает на "чемоданный" дизайн.


21 Jul 2013 20:45
Profile
Retired

Joined: 27 Mar 2013 05:55
Posts: 588
Location: 62.192.229.16
Reply with quote
Post 
Lavr wrote:
Начал отрисовывать Программный Счетчик (РС) и последовательный Сумматор -
EDUC-8_PC_ADDER_logic и был удивлён неимоверно! :o

Для инкремента 8-битного Программный Счетчика, выполненного почему-то на
сдвиговых регистрах (а я давно был в сомнении - не ошибка ли это...) так вот,
содержимое Программного Счетчика прогоняют через сумматор для операции
его инкремента! :o

А я как-то привык, что Программный Счетчик - это двоичный СЧЁТЧИК, как ни крути...
И РС = РС + 1 - это один управляющий импульс на вход инкремента +1 ! :roll:


Я то же когда рисовал процессор инкрементировал PC с помощью АЛУ.


04 Aug 2013 16:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
На мой взгляд - приём довольно нерациональный для любительской конструкции ЦП,
как с точки зрения быстродействия, так и по количеству компонентов, участвующих в
организации связей РС и АЛУ.

Кстати говоря, а где бы посмотреть схемотехнику твоего процессора?
Интересуюсь такими схемами...

_________________
iLavr


04 Aug 2013 21:09
Profile
Retired

Joined: 27 Mar 2013 05:55
Posts: 588
Location: 62.192.229.16
Reply with quote
Post 
Наоборот, схема упрощается. Больше не нужен счетчик, меньше мультиплексоров.

Схема на реле в плохом качестве. Поищу, где то была схема в протеусе.

http://s52.radikal.ru/i135/1201/7b/848f9fc70473.png

4 регистра. IP, A, ADDR, DATA. Регистр ADDR подключен к шине адреса памяти, DATA к шине данных. Две операции NAND и ADD. Запись - это сложение с нулем.

Проверялся на программе:
0 A = 0
1 ADDR = A
2 DATA = A
3 A += 1
4 JNC 1
5 JMP 5

Я составил таблицу, где указаны аналогии команд процессора 6502 и этого чудо процессора. Например одна из самых сложных команд процессора 6502 AND IND, X реализуется последовательностью команд

ADDR = IND
A = DATA
ADDR = REG_X (костанта, т.е. адрес в памяти)
A += DATA
ADDR = A
A = DATA
ADDR = REG_A (костанта, т.е. адрес в памяти)
A = ~(DATA & A)
DATA = ~A

Или команда CALL ADDR

ADDR = REG_SP (костанта, т.е. адрес в памяти)
A = DATA+1
DATA = A
ADDR = A
DATA = IP+2
JMP ADDR

Соответственно при той же тактовой частоте это всё работает медленее, чем на процессоре 6502. Но зато мой процессор в 10 раз меньше.

А это предыдущая схема на кремнии, там у IP отдельный сумматор.
http://s017.radikal.ru/i400/1201/c7/b22c1c808621.png



Lavr: перенес продолжение темы сюда:---------------------------------------

Когда у тебя счетчик с загрузкой в одном корпусе, конечно не особо проще. Тут то реле.

Но как реализовать сохранение IP в память (для подпрограмм)? Надо коммутировать его на шину данных памяти. А дальше развиваем эту мысль, и засовываем его до АЛУ. Получаем некоторые плюсы бесплатно.

В два раза медленне, это да.


05 Aug 2013 00:49
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
vinxru wrote:
Наоборот, схема упрощается. Больше не нужен счетчик, меньше мультиплексоров.

Не хочу спорить, но нисколько не упрощается. Мультиплексоров - как раз больше,
в тактах - всё становится длиннее.
Если не использовать фичу 6502 с относительной адресацией, то мультиплекоры
и просто не нужны.

Сравниваю свой проект 4-бит ЦПУ и этот ЕДУК-8, у меня при более скромной
схемотехнике уже получается более выразительная система команд...

Единственное, что я хочу уяснить, не поможет ли мне последовательное АЛУ
еще подсократить число корпусов.


PS. А схемы, похожие на твои, или даже - твои, сдается мне, я видел уже! :wink:

_________________
iLavr


05 Aug 2013 05:25
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
vinxru wrote:
Когда у тебя счетчик с загрузкой в одном корпусе, конечно не особо проще. Тут то реле.

Но как реализовать сохранение IP в память (для подпрограмм)? Надо коммутировать его на шину данных памяти. А дальше развиваем эту мысль, и засовываем его до АЛУ. Получаем некоторые плюсы бесплатно.

В два раза медленне, это да.


Ну с реле - тут я пас. :lol:

А сохранение IP в память (для подпрограмм) - я выполнил по типу PDP-8.

_________________
iLavr


05 Aug 2013 05:36
Profile
Retired

Joined: 27 Mar 2013 05:55
Posts: 588
Location: 62.192.229.16
Reply with quote
Post 
Что то сообщения летают по темам :)


05 Aug 2013 05:38
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
vinxru wrote:
Что то сообщения летают по темам :)

Отделил от ЕДУК-8 в отдельную тему, чтобы побеседовать по вопросам схемотехники
самодельных ЦПУ здесь.


PS. Весьма многопараметровая схемотехника - почти как шахматная партия! :o
Любое решение приводит к неоднозначным результатам: в чем-то выигрываешь,
а что-то неизбежно ухудшается...
Нет казалось бы неоднозначных решений. И все проанализированные мной схемы
от оптимума весьма далеки, хотя ивесьма разнообразны по схемотехническим решениям.

_________________
iLavr


05 Aug 2013 05:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Для инкремента 8-битного Программный Счетчика, выполненного почему-то на
сдвиговых регистрах (
содержимое Программного Счетчика прогоняют через сумматор для операции
его инкремента! :o

Может быть как-то иначе схемотехнически - это и меет смысл.
Пока вижу лишь один плюс в таком решении - можно организовать относительные переходы,
раз уж РС прогоняют через сумматор...
Но в ЕДУК-8 - это не реализовано.

А то что РС прогоняют через сумматор фактически в каждой команде, а бывает и два раза -
ну просто навевает уныние!

24 такта на команду! :o Это ж афегеть можно! Я "упихивался" в 8 тактов - 4 - FETCH +
4 - ИСПОЛНЕНИЕ, и то мне казалось, если сделать разное число тактов на команду -
схемотехника упростится...
А тут - 24 такта :o, и не скажу, что схемотехника проста...

_________________
iLavr


22 Aug 2013 04:17
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 9 posts ] 

Who is online

Users browsing this forum: No registered users and 3 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.