nedoPC.org

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



Reply to topic  [ 410 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9, 10, 11 ... 28  Next
Давайте думать над железкой (TRIADOR) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
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:
 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 целиком используется, а не только его знак

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


18 Nov 2017 11:58
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
все скипы по условию и одиночные. Так проще.
JMP - один, дальний, безусловный

И что одиночным скипом можно перепрыгнуть?

Я же написал - мы путаемся в терминологии... :mrgreen:
Одиночный скип - я имею в виду: обходит одну инструкцию. :wink:

_________________
iLavr


18 Nov 2017 12:04
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Lavr wrote:
AlexanderZh wrote:
Lavr wrote:
все скипы по условию и одиночные. Так проще.
JMP - один, дальний, безусловный

И что одиночным скипом можно перепрыгнуть?

Я же написал - мы путаемся в терминологии... :mrgreen:
Одиночный скип - я имею в виду: обходит одну инструкцию. :wink:

поэтому я предложил чуть выше называть их короткий скип и длинный скип :)
а скип с условным одинарным или двойным скипом назвать "двойной скип" :roll:

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


18 Nov 2017 12:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Lavr wrote:
Я же написал - мы путаемся в терминологии... :mrgreen:
Одиночный скип - я имею в виду: обходит одну инструкцию. :wink:
поэтому я предложил чуть выше называть их короткий скип и длинный скип :)
а скип с условным одинарным или двойным скипом назвать "двойной скип" :roll:

По-моему, ты хуже всё запутал... :lol:

(Или мне тоже надо пойти поспать... невысыпаюсь последнюю неделю..)

_________________
iLavr


18 Nov 2017 12:12
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Lavr wrote:
По-моему, ты хуже всё запутал... :lol:

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

А вообще можно для EX собрать декодер, который выдаёт 27 управляющих сигналов, которые можно цеплять на что угодно - там и попробовать всё на свете :roll:

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


18 Nov 2017 14:28
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
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:
 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...

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


18 Nov 2017 15:00
Profile WWW
Supreme God
User avatar

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

Не... ты сначала сам прочитай: :mrgreen:
Shaos wrote:
а скип с условным одинарным или двойным скипом назвать "двойной скип"
Напоминает фильм "Блеф": 8) "Счет на счет..? Счет насчет счета! Граф считает счета на своем счету!" :lol:

_________________
iLavr


18 Nov 2017 15:32
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Если следовать , что положительный первый трит означает тег последующей структуры данных, а отрицательный первый трит означает, что это код.операции, то получится 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 )


20 Nov 2017 02:13
Profile
Maniac

Joined: 10 Mar 2017 05:30
Posts: 318
Reply with quote
Вот так будут выглядеть (трёхтритные) регистры триадора. Один регистр - платка 50x50 мм, на фотографии два регистра. В сумме будет 13. Подключаться к мультиплексорам 1:13 будут через гибкие шлейфы.

Image


20 Nov 2017 07:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
petrenko wrote:
Multiplizieren ;
Dividieren ;

Вот этого ненадо - для этого будет будущий большой 9-тритный проц :)

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


20 Nov 2017 08:27
Profile WWW
Fanat
User avatar

Joined: 18 Nov 2014 09:17
Posts: 52
Location: Отсюда
Reply with quote
А почему не надо?
Вполне так умножение представляется через сложение/вычитание (в зависимости от знака трита оп1) + сдвиг оп2
в цикле, пока значения тритов из оп1 не кончатся.
И деление - обратная операция ))) (поколдовать малость и получится)


20 Nov 2017 08:31
Profile
Admin
User avatar

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

не-не-не-не-не, у нас тут ПРОСТЕЙШИЙ (в терминах кол-ва корпусов) троичный вичислитель, способный выполнять более или менее вменяемые программы (а не просто лампочками мигать)...

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


20 Nov 2017 08:57
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
haqreu wrote:
Вот так будут выглядеть (трёхтритные) регистры триадора. Один регистр - платка 50x50 мм, на фотографии два регистра. В сумме будет 13. Подключаться к мультиплексорам 1:13 будут через гибкие шлейфы.

Image


А регистры у тебя как подключены - по уровню или по срезу? Я уже начинаю забывать твою схемотехнику :)
Может где на вики выкладывать типа справочника по существующим платкам с принципиальными схемами, распиновкой и т.д.? ;)
Например на том же сайте http://Ternary.info (он же Ternary.me - бывший 3niti.org)

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


20 Nov 2017 09:01
Profile WWW
Maniac

Joined: 10 Mar 2017 05:30
Posts: 318
Reply with quote
Эти регистры запоминают по ниспадающему P-O-N фронту. Я думаю, что я буду документировать по мере того, как соберу что-то работающее, типа как было тут.


20 Nov 2017 09:10
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Shaos wrote:
.. у нас тут ПРОСТЕЙШИЙ (в терминах кол-ва корпусов) троичный рахуватиль ...
Ну так ежели "в терминах кол-ва корпусов" , то другого варианта для "выполнять более или менее вменяемые программы" кроме как микропрограммы не сыскать.
Так что коллега "JeNNeR" правильно говорит.
Да и впихивать на последующих этапах гораздо головоломнее, нежели сразу предусмотреть ( ну или хотя бы как минимум зарезрвировать под будующую достройку ) .

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

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


20 Nov 2017 15:15
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 410 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9, 10, 11 ... 28  Next

Who is online

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