Давайте думать над железкой (TRIADOR)

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Shaos wrote:Итого имеем на посмотреть (если учитывать только опкоды без аргументов, которых у нас нету и быть не может):
1) короткий скип по выполнению (или невыполнению) условия знак регистра (как минимум R1 и R4) равен (или не равен) -1,0,+1
2) длинный скип через 3 инструкции по выполнению (или невыполнению) условия знак регистра (как минимум R1 и R4) равен (или не равен) -1,0,+1
3) двойной скип по знаку регистра (как минимум R1 и R4): -1 не скип, 0 один скип, +1 два скипа
4) условный джамп на адреса R1,R2,R3 в зависимости от знака в регистре R4 (который у нас может быть задействован в качестве знака переноса/заёма для операций сложения/вычитания/сдвига)
а вот надо ли иметь прямой доступ к программному счётчику? если бы он был, то двойной скип делался бы как-то так:

Code: Select all

 R1 zero ; copy label "zero" to R1
 ADD R1,R4,R12 ; some kind of macro R12=R1+R4
minus: NOP
zero: NOP
plus: NOP
правда тут значение R4 целиком используется, а не только его знак
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16637
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Давайте думать над железкой (TRIADOR)

Post by Lavr »

AlexanderZh wrote:
Lavr wrote:все скипы по условию и одиночные. Так проще.
JMP - один, дальний, безусловный
И что одиночным скипом можно перепрыгнуть?
Я же написал - мы путаемся в терминологии... :mrgreen:
Одиночный скип - я имею в виду: обходит одну инструкцию. :wink:
iLavr
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Lavr wrote:
AlexanderZh wrote:
Lavr wrote:все скипы по условию и одиночные. Так проще.
JMP - один, дальний, безусловный
И что одиночным скипом можно перепрыгнуть?
Я же написал - мы путаемся в терминологии... :mrgreen:
Одиночный скип - я имею в виду: обходит одну инструкцию. :wink:
поэтому я предложил чуть выше называть их короткий скип и длинный скип :)
а скип с условным одинарным или двойным скипом назвать "двойной скип" :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16637
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Давайте думать над железкой (TRIADOR)

Post by Lavr »

Shaos wrote:
Lavr wrote:Я же написал - мы путаемся в терминологии... :mrgreen:
Одиночный скип - я имею в виду: обходит одну инструкцию. :wink:
поэтому я предложил чуть выше называть их короткий скип и длинный скип :)
а скип с условным одинарным или двойным скипом назвать "двойной скип" :roll:
По-моему, ты хуже всё запутал... :lol:

(Или мне тоже надо пойти поспать... невысыпаюсь последнюю неделю..)
iLavr
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

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

А вообще можно для EX собрать декодер, который выдаёт 27 управляющих сигналов, которые можно цеплять на что угодно - там и попробовать всё на свете :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой

Post by Shaos »

Shaos wrote:
haqreu wrote:Думаю, что кроме carry и sign флагов не будет. Когда их устанавливать - это хороший вопрос. Смысла этого делать при копировании, например, не вижу. При всех арифметических операциях - да. А вот надо ли ставить при, например, потритовой инструкции OPA?
только один флаг по ходу нужен - carry/borrow
потритовые инструкции наверное вообще не должны трогать флаги
тогда OP NOP будет выполняться как NOP :)
P.S. а не затолкать ли carry/borrow флаг скажем в R4?
тогда при сложении R1 и R2 результат кладётся в R3, а переполнение - в R4 :)
:oidea: идея - иметь полноценный трёх-адресный АЛУ (когда оба аргумента и конечный результат могут быть любым из 13 регистров), а EX команда будет ПРОГРАММИРУЕМОЙ, т.е. в начале программы мы указываем для каждого из 27 вариантов (или стольки вариантов, сколько планируем задействовать в программе) чего он собственно будет делать, например путём заюзывания инструкции кодирования (скажем уберём OPB в АЛУ и задействуем освободившийся опкод NP (-2) как инструкцию программирования PR, т.е. PR -1 будет означать запрограммировать расширенную инструкцию EX -1 и т.д., а аргументы программирования будут браться из регистров:
R1 - первый адрес (1й аргумент)
R2 - второй адрес (2й аргумент)
R3 - третий адрес (результат)
R4 - код выполняемой фунции (из АЛУ либо скипы)
каждый "адрес" задаётся 3 тритами, a у нас 13 регистров и например если аргумент отрицательный, то имеется ввиду то, что регистр берётся с инверсией (чтобы можно было реализовать вычитание скажем), а если 0, то берётся 0:

Code: Select all

 R1 1 ; 1st argument is R1
 R2 -2 ; 2nd argument is inverted R2
 R3 1 ; result is R1
 R4 -12 ; for example let's pretend this is ADC with carry/borrow
 PR -1 ; programming of EX -1
после этого куска кода любой вызов EX -1 будет выполняться как R1=R1-R2

дискасс :mrgreen:

P.P.S. Хотя это уже может быть TRIADOR-4...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16637
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Давайте думать над железкой (TRIADOR)

Post by Lavr »

Shaos wrote:
Lavr wrote:По-моему, ты хуже всё запутал... :lol:
Ну вот и надо все померять в тримуксах и оставить только нужный - его и назвать просто "skip" :)
Не... ты сначала сам прочитай: :mrgreen:
Shaos wrote:а скип с условным одинарным или двойным скипом назвать "двойной скип"
Напоминает фильм "Блеф": 8) "Счет на счет..? Счет насчет счета! Граф считает счета на своем счету!" :lol:
iLavr
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Re: Давайте думать над железкой (TRIADOR)

Post by petrenko »

Если следовать , что положительный первый трит означает тег последующей структуры данных, а отрицательный первый трит означает, что это код.операции, то получится 13 операций .

Операции, которые должен выполнять процессор :
Mathematische, Logische, Steueranweisungen und andere Anweisungen
Steueranweisungen :
Gabelt um bedingung :
Vorbeilaufen ( hinweggehen folgende anweisungen ) um bedingung
Springen ;

Unterprogrammaufruf ;
Steuerungsruckgabe ;
Halt ;
erweiterte ( operationscodes ) ;

Matematische :
Addieren ;
Subtrahieren ;
Multiplizieren ;
Dividieren ;

Logische : ...

Логические ещё не продумал.
Есть три свободных места, а ведь ещё как то надо делать senden/kopieren в/из регистров

Тьфу, сам забыл, что Springen суть PC <- ADI( PC , {const} ) ? так что четыре свободных места.

Ой нет, два свободно , ведь надо schieben ( um zu stapeln ) & pop ( aus stapel )
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

Вот так будут выглядеть (трёхтритные) регистры триадора. Один регистр - платка 50x50 мм, на фотографии два регистра. В сумме будет 13. Подключаться к мультиплексорам 1:13 будут через гибкие шлейфы.

Image
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

petrenko wrote: Multiplizieren ;
Dividieren ;
Вот этого ненадо - для этого будет будущий большой 9-тритный проц :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
JeNNeR
Fanat
Posts: 52
Joined: 18 Nov 2014 09:17
Location: Отсюда

Re: Давайте думать над железкой (TRIADOR)

Post by JeNNeR »

А почему не надо?
Вполне так умножение представляется через сложение/вычитание (в зависимости от знака трита оп1) + сдвиг оп2
в цикле, пока значения тритов из оп1 не кончатся.
И деление - обратная операция ))) (поколдовать малость и получится)
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

JeNNeR wrote:А почему не надо?
Вполне так умножение представляется через сложение/вычитание (в зависимости от знака трита оп1) + сдвиг оп2
в цикле, пока значения тритов из оп1 не кончатся.
И деление - обратная операция ))) (поколдовать малость и получится)
не-не-не-не-не, у нас тут ПРОСТЕЙШИЙ (в терминах кол-ва корпусов) троичный вичислитель, способный выполнять более или менее вменяемые программы (а не просто лампочками мигать)...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

haqreu wrote:Вот так будут выглядеть (трёхтритные) регистры триадора. Один регистр - платка 50x50 мм, на фотографии два регистра. В сумме будет 13. Подключаться к мультиплексорам 1:13 будут через гибкие шлейфы.

Image
А регистры у тебя как подключены - по уровню или по срезу? Я уже начинаю забывать твою схемотехнику :)
Может где на вики выкладывать типа справочника по существующим платкам с принципиальными схемами, распиновкой и т.д.? ;)
Например на том же сайте http://Ternary.info (он же Ternary.me - бывший 3niti.org)
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

Эти регистры запоминают по ниспадающему P-O-N фронту. Я думаю, что я буду документировать по мере того, как соберу что-то работающее, типа как было тут.
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Re: Давайте думать над железкой (TRIADOR)

Post by petrenko »

Shaos wrote:.. у нас тут ПРОСТЕЙШИЙ (в терминах кол-ва корпусов) троичный рахуватиль ...
Ну так ежели "в терминах кол-ва корпусов" , то другого варианта для "выполнять более или менее вменяемые программы" кроме как микропрограммы не сыскать.
Так что коллега "JeNNeR" правильно говорит.
Да и впихивать на последующих этапах гораздо головоломнее, нежели сразу предусмотреть ( ну или хотя бы как минимум зарезрвировать под будующую достройку ) .

А коллеге "haqreu" вообще сугубо респект унд уважение за научно-практический почти что подвиг.
Он очень правильно делает сразу 13 регистров ( разрядность оных потом можно будет увеличить и до 9 тритов ,сие проще, чем потом впихивать недостающие регистры )

Кстати по ходу дела вопрос : а есть ли аппаратно-экономная возможность сделать парочку регистров с автоинкрементом и автодекрементом ?
Ежели сие sело мудрёно, то придётся SP и PC микрокомандами типа [ADI] прогонять через а.л.у. для увеличения на +1 +2 +3 ( но решится вопрос, как делать Vorbeilaufen ( hinweggehen ) "много-скиповый" :mrgreen: )