nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 21 Oct 2017 13:29



Reply to topic  [ 103 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next
Давайте думать над железкой 
Author Message
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
Сабж. Ограничения: использование только тримуксов. Ну, резисторы можно.
Бюджет сотни три тримуксов. Хочется программируемости, например, перемычками. Какие будут идеи?


13 Aug 2017 10:54
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15560
Location: Colorado
Reply with quote
У меня была идея сделать упрощённый программирумый вычислитель (сильно проще, чем 3niti alpha)

_________________
:eugeek: https://twitter.com/Shaos1973


14 Aug 2017 07:32
Profile WWW
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
Подробности! Сколько памяти, сколько и каких команд?


14 Aug 2017 14:43
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15560
Location: Colorado
Reply with quote
haqreu wrote:
Подробности! Сколько памяти, сколько и каких команд?

слово 3 трита (триада)
в системе команд как минимум должно быть:
- OPA (универсальная унарная команда)
- OPB (универсальная бинарная команда)
- JMP (безусловная передача управления)
потом можно приделать условия и сложение/вычитание (можно начать с инкремента/декремента)

_________________
:eugeek: https://twitter.com/Shaos1973


14 Aug 2017 20:24
Profile WWW
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
Так, а что нужно вообще из железа для этого? Я ненастоящий сварщик, но насколько я понимаю, нам надо:

1. Память (только на чтение, перемычки) исполняемых команд. Сколько её? 27 команд?
2. Указатель текущей инструкции, он же счётчик
3. Несколько регистров, по-минимуму два на чтение, один на чтение-запись.
4. АЛУ - его реализация зависит от выбранного набора команд

Что забыл?


15 Aug 2017 02:48
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15560
Location: Colorado
Reply with quote
Можно пойти по пути микроконтроллеров - команда фиксированной длины (например 5 тритов), включающая в себя все необходимые параметры (2 трита код инструкции и 3 трита параметр)

NN (-4) - расширение на будущее (сложение/вычитание с переносом/заёмом, пропуск следующей команды в зависимости от флага знака и флага переноса и т.д.)
NO (-3) - передать управление на ttt (в будущем можно переключать сегменты через регистр R13)
NP (-2) - выполнить OPB ttt над R1 и R2 (две другие триады, задающие команду, берутся из R3 и R4) и установить флаг знака
ON (-1) - выполнить OPA ttt над R1 (результат записать в тот же R1) и установить флаг знака
OO (0) - копирование регистров (см. далее)
OP (+1) - записать триаду в регистр R1
PN (+2) - записать триаду в регистр R2
PO (+3) - записать триаду в регистр R3
PP (+4) - записать триаду в регистр R4

Копирование регистров (можно начать с 4 регистров):
OONNN - скопировать R1 в R13
OONNO - скопировать R1 в R12
OONNP - скопировать R1 в R11
OONON - скопировать R1 в R10
OONOO - скопировать R1 в R9
OONOP - скопировать R1 в R8
OOPON - скопировать R1 в R7
OOPOO - скопировать R1 в R6
OOPOP - скопировать R1 в R5
OOONN - скопировать R1 в R4
OOONO - скопировать R1 в R3
OOONP - скопировать R1 в R2
OOOON - декремент R1 и установить флаг знака
OOOOO - проверить R1 и установить флаг знака
OOOOP - инкремент R1 и установить флаг знака
OOOPN - скопировать R2 в R1
OOOPO - скопировать R3 в R1
OOOPP - скопировать R4 в R1

OOPNN - скопировать R5 в R1
OOPNO - скопировать R6 в R1
OOPNP - скопировать R7 в R1
OOPON - скопировать R8 в R1
OOPOO - скопировать R9 в R1
OOPOP - скопировать R10 в R1
OOPPN - скопировать R11 в R1
OOPPO - скопировать R12 в R1
OOPPP - скопировать R13 в R1

P.S. 2-тритным инструкциям можно дать двухбуквенные названия, для упрощения программирования на гипотетическом ассемблере:
EX - расширение на будущее (NN)
JP - передать управление (NO)
OB - выполнить OPB (NP)
OP - выполнить OPA (ON)
LD - копирование регистров (OO)
R1 - записать триаду в R1 (OP)
R2 - записать триаду в R2 (PN)
R3 - записать триаду в R3 (PO)
R4 - записать триаду в R4 (PP)
параметр можно задавать десятичным числом, т.е. R1 -1 будет означать сохранить -1 в регистр R1, а LD -4 будет означать записать R1 в R4 (для подобных неочевидных команд можно нагородить макросов)

P.P.S. обозвать подобный "микроконтроллер" можно скажем TRIADOR (изменник или предатель на испанском и португальском языках : )
TRIADOR1 - 4 регистра без EX-инструкций и 3-тритной шиной адреса
TRIADOR2 - 13 регистров с EX-инструкцией пропуска следующей команды в зависимости от значения флага знака и 6-тритной шиной адреса (R13 используется при передаче управления)
TRIADOR3 - 13 регистров с 6-тритной шиной адреса и полным набором EX-инструкций с двумя флагами (знака и переноса/заёма)

_________________
:eugeek: https://twitter.com/Shaos1973


15 Aug 2017 04:48
Profile WWW
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
Итого, для начала ты предлагаешь 5 регистров (один служебный, со флагом знака). Если память адресуется всего одним словом, то вся программа имеет максимум 27 пятитритных инструкций, так?

Правильно ли я понимаю, что условных джампов не предусматривается? Насколько нас это ограничивает?

И как будет организован ввод и вывод в таком компьютере? Хочется уметь опросить ввод и выдать вывод. Положим, с выводом всё просто, один из регистров (а то и все) просто показываем светодиодами. А что со вводом?

Надо попробовать запрограммировать хоть что-нибудь на таком ассемблере (ещё до железной реализации). Есть идеи что именно?


15 Aug 2017 05:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Положим, с выводом всё просто, один из регистров (а то и все) просто показываем светодиодами. А что со вводом?

Ну я так понимаю управление троичной логикой тумблерами здесь звучало - проще не придумаешь УВ.

haqreu wrote:
Надо попробовать запрограммировать хоть что-нибудь на таком ассемблере (ещё до железной реализации). Есть идеи что именно?

Я всегда считаю, что на свежеиспеченном недо-компьютере самая актуальная задача -
суметь ввести что-то с УВ и вывести это "что-то" на индикацию. :wink:

_________________
iLavr


15 Aug 2017 06:13
Profile
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
Вопрос был не о форме тумблеров, а как эти тумблеры в память занести, является ли один из четырех регистров ридонли для процессора.


15 Aug 2017 06:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Вопрос был не о форме тумблеров,...

А я про "форму" тумблеров ничего и не говорил... :-?

_________________
iLavr


15 Aug 2017 06:37
Profile
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
Ххе, ну хорошо, ты говорил про форму устройства ввода :-)


15 Aug 2017 06:40
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Ну да: тумблеры - источник внешнего троичного сигнала, который заносится в троичный регистр.
Этот регистр для процессора только на чтение, ну а как иначе-то?

_________________
iLavr


15 Aug 2017 06:51
Profile
Online
Senior

Joined: 10 Mar 2017 08:30
Posts: 130
Reply with quote
А я не знаю, как ещё, потому и спрашиваю. Вот этот самый регистр только на чтение - он один из четырёх доступных, таким образом, только три регистра на запись?

Или же сделать устройство ввода видимым через ридонли память, ту самую, где располагаются инструкции? Таким образом остаются все четыре регистра свободными. Правда, чёткой реализации я пока не представляю :oops:


15 Aug 2017 07:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
По-моему, для начала надо сделать как проще - я это и предложил.
Один регистр чисто на ввод - нужен так или иначе.

Есть вариант - прицепить ввод прямо на внутреннюю шину без регистра.
Но мне кажется - это менее корректно в данном сучае...

_________________
iLavr


15 Aug 2017 07:11
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15560
Location: Colorado
Reply with quote
На копирование у нас 13 регистров - так что один из них может быть вводом-выводом (R5 например)

_________________
:eugeek: https://twitter.com/Shaos1973


15 Aug 2017 13:19
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 103 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next

Who is online

Users browsing this forum: haqreu and 1 guest


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.