nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 15 Dec 2017 15:55



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

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Мы путаемся в терминологии... :mrgreen:

_________________
iLavr


18 Nov 2017 12:19
Profile
Senior

Joined: 21 Mar 2017 13:50
Posts: 162
Location: Spb
Reply with quote
Shaos wrote:
лучше тройного джампа тем, что туда можно что-то отличное от JP засунуть

Да, мне тоже школа программируемого калькулятора пришла на ум. В некоторых местах было весьма оригинально и удобно!


18 Nov 2017 12:22
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15909
Location: Colorado
Reply with quote
Lavr wrote:
Shaos wrote:
двойной скип лучше тройного джампа

Тройной бранч - все классики "троизма" хотели - это "симметричные весы".
Будет политически неграмотно не сделать его, аппаратно он несложный.

в 3niti alpha он был не сложный - т.к. скакал по 3 регистрам, а тут ты предлагаешь аргументы сувать следом за инструкцией - причём 2 штуки
а это усложняет аппаратную реализацию т.к. у нас аргумент идёт в самом коде операции (либо не идёт вовсе, тогда операция дробится на кучу мелких как для EX)
поэтому скип по -1/0/+1 выглядит проще т.к. аргументов нет, а есть пропускаемые (или не пропускаемые) инструкции, которые для имитиации твоих "симметричных весов" могут быть джампами
P.S. с другой стороны никто не мешает сделать тройной JMP по R1,R2,R3 управляя направлением джампа знаком R4 :)

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


18 Nov 2017 12:30
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15909
Location: Colorado
Reply with quote
Итого имеем на посмотреть (если учитывать только опкоды без аргументов, которых у нас нету и быть не может):
1) короткий скип по выполнению (или невыполнению) условия знак регистра (как минимум R1 и R4) равен (или не равен) -1,0,+1
2) длинный скип через 3 инструкции по выполнению (или невыполнению) условия знак регистра (как минимум R1 и R4) равен (или не равен) -1,0,+1
3) двойной скип по знаку регистра (как минимум R1 и R4): -1 не скип, 0 один скип, +1 два скипа
4) условный джамп на адреса R1,R2,R3 в зависимости от знака в регистре R4 (который у нас может быть задействован в качестве знака переноса/заёма для операций сложения/вычитания/сдвига)

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


18 Nov 2017 12:37
Profile WWW
Senior

Joined: 21 Mar 2017 13:50
Posts: 162
Location: Spb
Reply with quote
Lavr wrote:
все скипы по условию и одиночные. Так проще.
JMP - один, дальний, безусловный

И что одиночным скипом можно перепрыгнуть? Дальний джамп это как минимум 2 ячейки. Программисту можно, конечно, жизнь "упростить" сделав в 'пропущенной' команде загрузку сегментного регистра, а следом то обязательно пойдет JMP либо в текущем сегменте, либо уже в измененном.


18 Nov 2017 12:39
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15909
Location: Colorado
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 целиком используется, а не только его знак

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


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

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

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

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

_________________
iLavr


18 Nov 2017 13:04
Profile
Admin
User avatar

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

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

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

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

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


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

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

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

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

_________________
iLavr


18 Nov 2017 13:12
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15909
Location: Colorado
Reply with quote
Lavr wrote:
По-моему, ты хуже всё запутал... :lol:

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

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

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


18 Nov 2017 15:28
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15909
Location: Colorado
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...

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


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

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

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

_________________
iLavr


18 Nov 2017 16:32
Profile
Doomed

Joined: 10 Mar 2012 17:21
Posts: 506
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 03:13
Profile
Maniac

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

Image


20 Nov 2017 08:08
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15909
Location: Colorado
Reply with quote
petrenko wrote:
Multiplizieren ;
Dividieren ;

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

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


20 Nov 2017 09:27
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 386 posts ]  Go to page Previous  1 ... 6, 7, 8, 9, 10, 11, 12 ... 26  Next

Who is online

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