|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Троичный компьютер ТРИНИТИ-2004
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Реализация полноценного стека возвратов выглядит немного тяжеловатой. Предположим, что мы имеем стек возвратов глубиной 9 адресов (27 триад). Причем указатель стека двигается от xxx xxx PPP вверх (меняется только D0). Пусть указателем стека будет DPp. Тогда первоначальная установка стека будет выглядеть так (7 триад): Вызов подпрограммы по произвольному адресу (47 триад): Возврат из подпрограммы по адресу из стека (40 триад):
|
18 Dec 2004 00:31 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
За компанию можно еще сделать компьютер с изменяемой архитектурой под названием "Morpheus"
|
05 Mar 2005 19:09 |
|
|
Mac Buster
Retired
Joined: 03 Aug 2003 22:37 Posts: 1474 Location: Moscow
|
Интересное предложение! Вот бы еще сделать периферийное устройство Neo со спецификацией Spoon II...
_________________ Extreme Entertainment
|
05 Mar 2005 23:07 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
А словом "Neo" можно обозвать операционную систему, которая будет работать на обоих компьютерах NEO System = Not Exactly Operating System
Last edited by Shaos on 05 Feb 2006 00:10, edited 2 times in total.
|
05 Mar 2005 23:18 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Предложение по представлению букв в "Тринити": Русский шрифт и другие символы можно держать в дополнительном шрифте, переключаемом по команде POP
|
10 Apr 2005 13:19 |
|
|
Ronin
Maniac
Joined: 29 Mar 2005 06:06 Posts: 304 Location: Krasnodar
|
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 |
|
|
Ronin
Maniac
Joined: 29 Mar 2005 06:06 Posts: 304 Location: Krasnodar
|
да и PUSH/POP тоже надо если стек и две страницы команд будут.
|
14 Apr 2005 23:44 |
|
|
Ronin
Maniac
Joined: 29 Mar 2005 06:06 Posts: 304 Location: Krasnodar
|
я вот обчитавшись Брусенцова и питая слабость к идеологии Форта (в частности к форт-процессору 1865вм1, был такой) все думаю, а не замутить ли стековую архитектуру. а интересность последовательных вычислений (см. серия ЭВМ "Мир" в виртуальном музее) пробуждает еще одну бредовую идею - машину с 1-тритной шиной данных и переменной длиной операндов (скажем до 729 трит, с нашими скоростями больше пока не нужно) - прикольная фишка, естественный счет "больших чисел" достающийся нахаляву от упрощения в последовательную архитектуру. Если быть до конца последовательным можно и адресные вычисления (вместе с 1-тритной адресной шиной) делать последовательными, т.е. вычислив (последовательно) новый адрес, загружать его прямо сразу в регистр адреса самого ОЗУ (на той стороне адресной шины) и не хранить внутри процессора, инкремент адреса производить импульсами. Хотя непонятно насколько большой это даст выигрыш в экономии аппаратуры, может это и не нужно вовсе (опять же, если ША всего 3-6 трит, смысла нет, а вот если нормальная на 18-21 трит - уже вопрос, причем дополнительные триты ША получаются почти нахаляву, хоть 81 тритом кодируй адрес ). Конечно, такая архитектура слишком бредовая и еще более медленная )))) Так что начинать я думаю надо все же с 3-тритной ШД и 9-тритной ША.
|
14 Apr 2005 23:51 |
|
|
cr0acker
God
Joined: 03 Feb 2003 13:53 Posts: 1078
|
| | | | Ronin wrote: я вот обчитавшись Брусенцова и питая слабость к идеологии Форта (в частности к форт-процессору 1865вм1, был такой) все думаю, а не замутить ли стековую архитектуру. а интересность последовательных вычислений (см. серия ЭВМ "Мир" в виртуальном музее) пробуждает еще одну бредовую идею - машину с 1-тритной шиной данных и переменной длиной операндов (скажем до 729 трит, с нашими скоростями больше пока не нужно) - прикольная фишка, естественный счет "больших чисел" достающийся нахаляву от упрощения в последовательную архитектуру. Если быть до конца последовательным можно и адресные вычисления (вместе с 1-тритной адресной шиной) делать последовательными, т.е. вычислив (последовательно) новый адрес, загружать его прямо сразу в регистр адреса самого ОЗУ (на той стороне адресной шины) и не хранить внутри процессора, инкремент адреса производить импульсами. Хотя непонятно насколько большой это даст выигрыш в экономии аппаратуры, может это и не нужно вовсе (опять же, если ША всего 3-6 трит, смысла нет, а вот если нормальная на 18-21 трит - уже вопрос, причем дополнительные триты ША получаются почти нахаляву, хоть 81 тритом кодируй адрес ). Конечно, такая архитектура слишком бредовая и еще более медленная )))) Так что начинать я думаю надо все же с 3-тритной ШД и 9-тритной ША. | | | | |
А чё даёшь стекову троичный форт ЭВМ ТРИНИТИ-5000К
_________________
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
|
14 Apr 2005 23:55 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Троичные буквы с расширением для русского языка: Русские буквы Aa, Ее, Оо, Рр, Сс, Хх предпологается отображать латинскими буквами ввиду аналогичности написания.
|
05 Feb 2006 00:00 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Пытаемся добавить псевдографику и греческий алфавит:
Для псевдографики надо заюзать порядка 47 символов (см. альтернативная кодировка доса)
Для греческого алфавита нужно:
Итого 29 символов - вместе с полной псевдографикой не влазит - урезаем псевдографику (убираем рамки, добавляем 2x2 псевдографические символы) и добавляем ещё кириллических символов и немного математических:
И напоминаю, что русские буквы Aa, Ее, Оо, Рр, Сс, Хх заменяются на их латинские похожие по написанию символы.
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 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Есть мысль убрать четыре символа , добавленные ради поддержки Македонского алфавита, и заменить их другими четырмя символами , чтобы обеспечить поддержку финского алфавита. В финском есть ещё буква , пришедшая из шведского и используемая только лишь для написания шведских имён (в финском даже нет строчного написания этой буквы) - она вроде как не требуется для того чтобы писать по фински.
Last edited by Shaos on 20 Sep 2012 19:38, edited 1 time in total.
|
30 Sep 2008 06:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Представленная система кодирования символов предназначена для трёх-тритного троичного компьютера. Один символ представляется тремя тритами, которые могут кодировать только 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 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Шрифты это конечно хорошо, но это для далёкого будущего, а пока надо подумать о том, что можно сделать прямо сейчас - например простейший дисплей для троичного компьютера можно построить из 81 красно-зелёного светодиода - что есть 9 рядов по 9 светодиодов в каждом:
Одна ячейка памяти состоит из 3 тритов и соответственно сможет отображаться тремя светодиодами (слева-направо - старший трит, средний трит, младший трит). Предположим на экран будут отображаться ячейки памяти с адресами от ONN NNN NNN (-3280) до ONN NNN PPP (-3254) - всего 27 ячеек.
На этот же экран в режиме отладки можно отображать содержимое всех непосредственно доступных и скрытых регистров:
x - зажигается если DPF=N (выбран регистр DPn)
y - зажигается если DPF=P (выбран регистр DPp)
в случае DPF=O не горят ни x, ни y
P.S. Хотя вывод PC и A можно сделать на отдельную линейку светодиодов предназначенных только для отображения значения этих регистров...
|
14 Oct 2008 18:14 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22811 Location: Silicon Valley
|
Пожалуй дисплей 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 |
|
|
Who is online |
Users browsing this forum: No registered users and 3 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
|
|