nedoPC.org

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



Reply to topic  [ 59 posts ]  Go to page Previous  1, 2, 3, 4  Next
Троичный компьютер ТРИНИТИ-2004 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Реализация полноценного стека возвратов выглядит немного тяжеловатой. Предположим, что мы имеем стек возвратов глубиной 9 адресов (27 триад). Причем указатель стека двигается от xxx xxx PPP вверх (меняется только D0). Пусть указателем стека будет DPp. Тогда первоначальная установка стека будет выглядеть так (7 триад):

Code:
LDN #ZPZ
SAF ; set DPp
LDP StackAddress ; xxx xxx NNN (trick NNN-1=PPP)


Вызов подпрограммы по произвольному адресу (47 триад):

Code:
LDN #ZZZ
SAF ; set DPz
LDP ReturnAddress ; any address

LDN #ZPZ
SAF ; set DPp
LAD0
ADN -1
SAD0
LDN #ZZZ
SAF ; set DPz
LAD0
SADp

LDN #ZPZ
SAF ; set DPp
LAD0
ADN -1
SAD0
LDN #ZZZ
SAF ; set DPz
LAD1
SADp

LDN #ZPZ
SAF ; set DPp
LAD0
ADN -1
SAD0
LDN #ZZZ
SAF ; set DPz
LAD2
SADp

JMP SubprogramAddress

ReturnAddress:


Возврат из подпрограммы по адресу из стека (40 триад):

Code:
SubprogramAddress:

LDN #ZZZ
SAF ; set DPz
LADp
SAD2
LDN #ZPZ
SAF ; set DPp
LAD0
ADN 1
SAD0

LDN #ZZZ
SAF ; set DPz
LADp
SAD1
LDN #ZPZ
SAF ; set DPp
LAD0
ADN 1
SAD0

LDN #ZZZ
SAF ; set DPz
LADp
SAD0
LDN #ZPZ
SAF ; set DPp
LAD0
ADN 1
SAD0

LDN #ZZZ
SAF ; set DPz
LPD ; load P from D


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


18 Dec 2004 00:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Предлагается создать простейший троичный компьютер, состоящий из комбинированных аналогово-цифровых модулей с троичным интерфейсом. Для начала реализовать 3 трехтритных регистра и обкатать на них основные троичные алгоритмы. Имя "Trinity" как мне кажется может привлечь интерес к проекту со стороны матрицофилов после опубликования материалов по нему в интернете. Жду откликов :)


За компанию можно еще сделать компьютер с изменяемой архитектурой под названием "Morpheus" ;)

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


05 Mar 2005 19:09
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Shaos wrote:
За компанию можно еще сделать компьютер с изменяемой архитектурой под названием "Morpheus" ;)

Интересное предложение! Вот бы еще сделать периферийное устройство Neo со спецификацией Spoon II... :)

_________________
Extreme Entertainment


05 Mar 2005 23:07
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Shaos wrote:
За компанию можно еще сделать компьютер с изменяемой архитектурой под названием "Morpheus" ;)

Интересное предложение! Вот бы еще сделать периферийное устройство Neo со спецификацией Spoon II... :)


А словом "Neo" можно обозвать операционную систему, которая будет работать на обоих компьютерах :roll:

NEO System = Not Exactly Operating System :lol:

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


Last edited by Shaos on 05 Feb 2006 00:10, edited 2 times in total.



05 Mar 2005 23:18
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Предложение по представлению букв в "Тринити":
Code:
--- - N O P - раскладки:
NNN - @ a A - раскладка N во всех шрифтах означает перевод строки
NNO - ! b B - ? в доп.шрифте
NNP - " c C - | в доп.шрифте
NON - ' d D - ` в доп.шрифте
NOO - ( e E - < в доп.шрифте
NOP - ) f F - > в доп.шрифте
NPN - = g G - # в доп.шрифте
NPO - , h H - ; в доп.шрифте
NPP - . i I - : в доп.шрифте
ONN - * j J - % в доп.шрифте
ONO - / k K - \ в доп.шрифте
ONP - + l L - ^ в доп.шрифте
OON - - m M - ~ в доп.шрифте
OOO - 0 n N - [ в доп.шрифте
OOP - 1 o O - ] в доп.шрифте
OPN - 2 p P - { в доп.шрифте
OPO - 3 q Q - } в доп.шрифте
OPP - 4 r R - $ в доп.шрифте
PNN - 5 s S - & в доп.шрифте
PNO - 6 t T - @ в доп.шрифте
PNP - 7 u U
PON - 8 v V
POO - 9 w W
POP - @ x X - символ в раскладке N означает переключение шрифта
PPN - @ y Y - символ в раскладке N означает дополнительную команду
PPO - @ z Z - символ в раскладке N означает терминальный символ
PPP - везде используется чтобы сменить раскладку в большую сторону

Русский шрифт и другие символы можно держать в дополнительном шрифте, переключаемом по команде POP

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


10 Apr 2005 13:19
Profile WWW
Maniac
User avatar

Joined: 29 Mar 2005 06:06
Posts: 304
Location: Krasnodar
Reply with quote
Post 
Shaos>Память линейная, ширина адреса 9 тритов. В железяке предлагается использовать только 8...

Непонял а нафига ? и потом если уж начали экономить, по этому 9му триту (в троичной схемотехнике) и разбились бы на порты/ПЗУ/ОЗУ ! Преобразование адресов из троичной в двоичную систему можно сделать на паре 27с512: 8трит-> 16бит-> 2x27512-> 13бит. 3-тритная ШД превратится в 6-битную. и плюс три сигнала - выбор ОЗУ, ПЗУ, портов.

насчет произвольных потритовых операций - Брусенцов в Сетуне реализовал только [ADD-SUB-NEG], [shift универсальный какой-то там] и [потритное умножение] утверждая что этого достаточно для реализации любой троичной логической функции. Я думаю что это так и есть, потому что в алгебре по основанию N (mod N) определяются также всего три операции - сумма, произведение, инверсия (shift - для продвижения по разрядам). хотя универсальные унарные/бинарные операции решают эти проблемы радикально ;) т.е. достаточно OPA, OPB, shift.

Еще предлагаю ввести макросы в ПЗУ - MAC #, и там в ПЗУ расположить таблицу адресов (по три триады адреса на каждый макрос) на основные макросы (ну скажем CALL, RET, PUSH/POP и тд) - получим 27 макрокоманд (в т.ч. и пользовательских если вынести часть ссылок в ОЗУ (прямо Сетунь-70 :)) Процессор встретив такую команду, берет соттв-ю тройку триад и загружает ее в PC.
И я думаю что стек нужен - его реализация не слишком сложнее тех же указателей на данные, а пользы куча ;). нужны CALL/RET и ветвление (с вовратом, как сетунь-70).
Итого нужно 4 кода для новых команд.
JMP не нужен. LAN можно сделать так - OPA #OOO: ADN N. не вижу практической пользы от команды SPD (чтение программного счетчика) - в статической программе все адреса известны на этапе ассемблирования.
Предлагаю - сделать на месте SPD (например) - префикс для страницы двухтриадных команд, и в ту страницу отправить JMP, SLA, SRA, LAN(или ADD?) а на их место поставить CALL ###, RET, BRS ###1 ###2 ###3, MAC #. указатель стека реализовать скажем на DPp.

ps// буквой Z предлагаю все же обозначать Z-состояние в железяках, а для нуля использовать O. для програминга некритично, а вот для железяк неудобно однако :)
pps// можно еще подумать о 4-тритной ШД и 8-тритной ША - тем самым расширив количество КОПов команд, только 4 и 8 числа непатроитичные ;) так что затея эта маловероятная.
ppps// а где же культовая команда DI:HALT :) шучу.


14 Apr 2005 23:42
Profile ICQ
Maniac
User avatar

Joined: 29 Mar 2005 06:06
Posts: 304
Location: Krasnodar
Reply with quote
Post 
да и PUSH/POP тоже надо если стек и две страницы команд будут.


14 Apr 2005 23:44
Profile ICQ
Maniac
User avatar

Joined: 29 Mar 2005 06:06
Posts: 304
Location: Krasnodar
Reply with quote
Post 
я вот обчитавшись Брусенцова и питая слабость к идеологии Форта (в частности к форт-процессору 1865вм1, был такой) ;) все думаю, а не замутить ли стековую архитектуру. а интересность последовательных вычислений (см. серия ЭВМ "Мир" в виртуальном музее) пробуждает еще одну бредовую идею - машину с 1-тритной шиной данных и переменной длиной операндов (скажем до 729 трит, с нашими скоростями больше пока не нужно) - прикольная фишка, естественный счет "больших чисел" достающийся нахаляву от упрощения в последовательную архитектуру. Если быть до конца последовательным ;) можно и адресные вычисления (вместе с 1-тритной адресной шиной) делать последовательными, т.е. вычислив (последовательно) новый адрес, загружать его прямо сразу в регистр адреса самого ОЗУ (на той стороне адресной шины) и не хранить внутри процессора, инкремент адреса производить импульсами. Хотя непонятно насколько большой это даст выигрыш в экономии аппаратуры, может это и не нужно вовсе (опять же, если ША всего 3-6 трит, смысла нет, а вот если нормальная на 18-21 трит - уже вопрос, причем дополнительные триты ША получаются почти нахаляву, хоть 81 тритом кодируй адрес ;) ). Конечно, такая архитектура слишком бредовая и еще более медленная ;))))) Так что начинать я думаю надо все же с 3-тритной ШД и 9-тритной ША.


14 Apr 2005 23:51
Profile ICQ
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
Ronin wrote:
я вот обчитавшись Брусенцова и питая слабость к идеологии Форта (в частности к форт-процессору 1865вм1, был такой) ;) все думаю, а не замутить ли стековую архитектуру. а интересность последовательных вычислений (см. серия ЭВМ "Мир" в виртуальном музее) пробуждает еще одну бредовую идею - машину с 1-тритной шиной данных и переменной длиной операндов (скажем до 729 трит, с нашими скоростями больше пока не нужно) - прикольная фишка, естественный счет "больших чисел" достающийся нахаляву от упрощения в последовательную архитектуру. Если быть до конца последовательным ;) можно и адресные вычисления (вместе с 1-тритной адресной шиной) делать последовательными, т.е. вычислив (последовательно) новый адрес, загружать его прямо сразу в регистр адреса самого ОЗУ (на той стороне адресной шины) и не хранить внутри процессора, инкремент адреса производить импульсами. Хотя непонятно насколько большой это даст выигрыш в экономии аппаратуры, может это и не нужно вовсе (опять же, если ША всего 3-6 трит, смысла нет, а вот если нормальная на 18-21 трит - уже вопрос, причем дополнительные триты ША получаются почти нахаляву, хоть 81 тритом кодируй адрес ;) ). Конечно, такая архитектура слишком бредовая и еще более медленная ;))))) Так что начинать я думаю надо все же с 3-тритной ШД и 9-тритной ША.

А чё даёшь стекову троичный форт ЭВМ ТРИНИТИ-5000К

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


14 Apr 2005 23:55
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Предложение по представлению букв в "Тринити"

Троичные буквы с расширением для русского языка:
Code:
    | - N - | - O - | шрифты (шрифт P зарезервирован под будущее - там будет псевдографика)
    | N O P | N O P | раскладки
------------------------------------------------------------------------------------------------
NNN |   a A |   б Б | символ в раскладке N во всех шрифтах означает перевод строки
NNO | ! b B | ? в В |
NNP | " c C | | г Г |
NON | ' d D | ` д Д |
NOO | ( e E | < ж Ж |
NOP | ) f F | > з З |
NPN | = g G | # и И |
NPO | , h H | ; й Й |
NPP | . i I | : к К |
ONN | * j J | % л Л |
ONO | / k K | \ м М |
ONP | + l L | ^ н Н |
OON | - m M | ~ п П |
OOO | 0 n N | [ т Т |
OOP | 1 o O | ] у У |
OPN | 2 p P | { ф Ф |
OPO | 3 q Q | } ц Ц |
OPP | 4 r R | $ ч Ч |
PNN | 5 s S | & ш Ш |
PNO | 6 t T | @ щ Щ |
PNP | 7 u U | _ ъ Ъ |
PON | 8 v V | ё ы Ы |
POO | 9 w W | Ё ь Ь |
POP |   x X |   э Э | символ в раскладке N во всех шрифтах означает переключение шрифта в большую сторону
PPN |   y Y |   ю Ю | символ в раскладке N во всех шрифтах означает пробел
PPO |   z Z |   я Я | символ в раскладке N во всех шрифтах означает терминальный символ
PPP | во всех шрифтах и всех раскладках используется чтобы сменить раскладку в большую сторону (с сохранением шрифта)


Русские буквы Aa, Ее, Оо, Рр, Сс, Хх предпологается отображать латинскими буквами ввиду аналогичности написания.

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


05 Feb 2006 00:00
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Пытаемся добавить псевдографику и греческий алфавит:

Для псевдографики надо заюзать порядка 47 символов (см. альтернативная кодировка доса)

Для греческого алфавита нужно:

Image

Итого 29 символов - вместе с полной псевдографикой не влазит - урезаем псевдографику (убираем рамки, добавляем 2x2 псевдографические символы) и добавляем ещё кириллических символов и немного математических:

Image

И напоминаю, что русские буквы Aa, Ее, Оо, Рр, Сс, Хх заменяются на их латинские похожие по написанию символы.

Code:
Пример использования - сконвертируем строку "Aвтобус".
По умолчанию установлены фонт N и раскладка N:

 0) PPP - переключаем раскладку в O
 1) PPP - переключаем раскладку в P
 2) NNN - сивмол 'A' (фонт N, раскладка P)
 3) PPP - переключаем раскладку в N
 4) POP - переключаем фонт в O
 5) PPP - переключаем раскладку в O
 6) NNO - символ 'в' (фонт O, раскладка O)
 7) OOO - символ 'т' (фонт O, раскладка O)
 8) PPP - переключаем раскладку в P
 9) PPP - переключаем раскладку в N
10) POP - переключаем фонт в O
11) POP - переключаем фонт в N
12) PPP - переключаем раскладку в O
13) OOP - символ 'o' (фонт N, раскладка O)
14) PPP - переключаем раскладку в P
15) PPP - переключаем раскладку в N
16) POP - переключаем фонт в O
17) PPP - переключаем раскладку в O
18) NNN - символ 'б' (фонт O, раскладка O)
19) OOP - символ 'у' (фонт O, раскладка O)
20) PPP - переключаем раскладку в P
21) PPP - переключаем раскладку в N
22) POP - переключаем фонт в P
23) POP - переключаем фонт в N
24) PPP - переключаем раскладку в O
25) NNP - символ 'c' (фонт N, раскладка O)
26) PPP - переключаем раскладку в P
27) PPP - переключаем раскладку в N
28) PPO - терминальный символ (конец строки)

т.е. 7-буквенное слово преобразовалось в 29 триад

P.S. С английскими словами всё должно быть лучше, т.к. там не надо щёлкать фонтами...


P.S. Мысли по поддержке европейских букв отпала после внимательного просмотра вот этой странички в википедии: http://en.wikipedia.org/wiki/Alphabets_ ... _the_Latin


Last edited by Shaos on 20 Sep 2012 19:13, edited 3 times in total.



30 Aug 2008 20:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Есть мысль убрать четыре символа Image, добавленные ради поддержки Македонского алфавита, и заменить их другими четырмя символами Image, чтобы обеспечить поддержку финского алфавита. В финском есть ещё буква Image, пришедшая из шведского и используемая только лишь для написания шведских имён (в финском даже нет строчного написания этой буквы) - она вроде как не требуется для того чтобы писать по фински.


Last edited by Shaos on 20 Sep 2012 19:38, edited 1 time in total.



30 Sep 2008 06:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Image
Представленная система кодирования символов предназначена для трёх-тритного троичного компьютера. Один символ представляется тремя тритами, которые могут кодировать только 27 разнообразных комбинаций и поэтому нам нужны специальные коды, которые могли бы менять наборы отображаемых символов. Введём 3 шрифта, каждый из которых имеет 3 раскладки - всего 3^5=243 возможных символа. Первый шрифт покрывает латинские буквы, цифры и некоторые стандартные символы из ASCII. Второй шрифт - русские буквы (за исключением тех, которые похожи по написанию на латинские) и остальные стандартные символы из ASCII. Третий шрифт - псевдографика 2х2 пиксела на знакоместо, греческие буквы (за исключением тех, которые похожи по написанию на латинские и русские), дополнительные символы для поддержки некоторых европейских языков (украинский, белорусский, сербский, финский), а также некоторые математические символы. Также имеются несколько специальных символов: SL - switch layout (переключение раскладки) доступен во всех шрифтах и раскладках, SF - switch font (переключение шрифта) доступен в раскладке N всех шрифтов, NL - new line (новая строка) доступен в раскладке N всех шрифтов, TC - terminal character (терминальный символ) доступен в раскладке N всех шрифтов, а также пробел, который также доступен в раскладке N всех шрифтов. По умолчанию устанавливается шрифт N и раскладка N. Перевод строки сбрасывает текущий шрифт в N. Переключение шрифта сдвигает текущий шрифт вперёд на 1 (N->O->P->N и т.д.), сбрасывая текущую раскладку в N. Переключение раскладки сдвигает текущую раскладку вперёд на 1 (N->O->P->N и т.д.), сохраняя текущий шрифт. Терминальный символ используется как метка конца текста в памяти трёх-тритного троичного компьютера.


30 Sep 2008 06:51
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Шрифты это конечно хорошо, но это для далёкого будущего, а пока надо подумать о том, что можно сделать прямо сейчас - например простейший дисплей для троичного компьютера можно построить из 81 красно-зелёного светодиода - что есть 9 рядов по 9 светодиодов в каждом:

Image

Одна ячейка памяти состоит из 3 тритов и соответственно сможет отображаться тремя светодиодами (слева-направо - старший трит, средний трит, младший трит). Предположим на экран будут отображаться ячейки памяти с адресами от ONN NNN NNN (-3280) до ONN NNN PPP (-3254) - всего 27 ячеек.

На этот же экран в режиме отладки можно отображать содержимое всех непосредственно доступных и скрытых регистров:

Quote:
-4 N: triad from memory addressed by DPn;
-3 O: triad from memory addressed by DPo;
-2 P: triad from memory addressed by DPp;
-1 F: flag register;
0 A: accumulator register;
+1 B: auxiliary register;
+2 L: lower triad of current DP register;
+3 M: middle triad of current DP register;
+4 H: higher triad of current DP register.

Register PC (program counter) is not available directly.


Code:
 N: P0hP0mP0l Nh Nm Nl   .  .  . // первые 3 трита - младшая триада PC
 O: P1hP1mP1l Oh Om Ol   .  .  . // первые 3 трита - средння триада PC
 P: P2hP2mP2l Ph Pm Pl   .  .  . // первые 3 трита - старшая триада PC
 F:  .  x  x  AS-DP-BC   y  y  . // трит DPF управляет зажиганием x/y
 A:  .  x  .  Ah Am Al   .  y  .
 B:  .  x  .  Bh Bm Bl   .  y  .
DP: LnhLnmLnl LohLomLol LphLpmLpl
DP: MnhMnmMnl MohMomMol MphMpmMpl
DP: HnhHnmHnl HohHomHol HphHpmHpl


x - зажигается если DPF=N (выбран регистр DPn)
y - зажигается если DPF=P (выбран регистр DPp)
в случае DPF=O не горят ни x, ни y

P.S. Хотя вывод PC и A можно сделать на отдельную линейку светодиодов предназначенных только для отображения значения этих регистров...


14 Oct 2008 18:14
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Пожалуй дисплей 9x9 надо сделать опциональным дополнением, втыкаемым в троичную шину расширения (о ней позже), основным же методом вывода информации надо сделать линейку светодиодов, отображающую содержимое теневого регистра PC (9 светодиодов), одну триаду данных (3 светодиода) и также содержимое регистра A - всего 15 штук. Под светодиодами можно расположить троичные переключатели - 9 для задания адреса, 3 для задания вводмых данных и 3 переключателя управления:

1) переключатель управляющий вводом-выводом:
P (верхнее положение) - по установленному адресу записывается установленная триада, которая также отображается на светодиодах триады данных;
O (среднее положение) - установленный адрес и установленная триада игнорируются (т.е. переключатели адреса и данных в этом режиме можно переключать), а на светодиодах триады данных отображается содержимое ячейки с адресом PC;
N (нижнее положение) - установленная триада игнорируется, а на светодиодах триады данных отображается содержимое ячейки по установленному адресу;

2) переключатель выбирающий подпрограммы работы:
P (верхнее положение) - прервать работу основной программы и запустить подпрограмму по установленному адресу;
O (среднее положение) - не препятствовать работе основной программы или ранее запущенной подпрограммы;
N (нижнее положение) - прервать работу основной программы и запустить дополнительную подпрограмму, что является расширением на будущее;

3) переключатель управляющий пошаговой отладкой:
P (верхнее положение) - осуществить один шаг вперед;
O (среднее положение) - режим паузы;
N (нижнее положение) - обычный прогон программы.


15 Oct 2008 16:38
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 59 posts ]  Go to page Previous  1, 2, 3, 4  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.