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

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

Moderator: haqreu

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

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

Post by Shaos »

haqreu wrote:И я не понимаю механику подмены следующей инструкции на OOOOO. Я собирался для пропуска инструкции перезаписывать значение IP. Как просто подменить, мне неясно...
Перезаписывать это тяжелее по-моему т.к. надо считать лишний инкремент. Намного проще подменить следующую инструкцию на NOP - просто надо предусмотреть механизм, чтобы сохранялся флаг на следущую инструкцию и мультиплексорами вместо опкода из памяти выдавались бы все нули, а в конце этой самой следующей инструкции чтобы этот флаг сбрасывался - вобщем как-то так...
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

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

Post by haqreu »

Ну я планировал было делать ещё двойные пропуски (типа, троичный джамп), поэтому простым флагом мне было не обойтись. Я подумаю, спасибо.

А зачем вообще столько разных пропусков нам?
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote:Намного проще подменить следующую инструкцию на NOP - просто надо предусмотреть механизм, чтобы сохранялся флаг на следущую инструкцию и мультиплексорами вместо опкода из памяти выдавались бы все нули...
Поскольку Shaos не любит "грязных трюков" (а проще всего
такой трюк делать на открытых коллекторах с притяжкой к +5В), то схемотехнически просто
поставить буфер, за ним - притяжку резисторами к +5В и ключи - к 0 В.
В нужный момент - выключаем буфер и включаем ключи к 0 В.

И совсем уж без слова "трюки" это решается в 2 буфера. 2-й буфер выдает на шину 0 В,
когда первый отключен.


P.S. Но сам бы я всё же делал, как предлагает haqreu: пропуск - это IP(PC)+1. Но тут всё начинает
упираться в растактовку команд
: IP(PC)+1 в принципе успеем сделать всегда, а вот 2 раза IP(PC)+1 ?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

haqreu wrote:А зачем вообще столько разных пропусков нам?
Ну для простоты программирования например :)

P.S. Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

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

Post by haqreu »

Слишком много скипов на мой вкус получается. Я бы разбавил бы чем-нибудь. Ещё не думал, но чем-нибудь вроде "вернуться на предыдущую команду в зависимости от флага"
Last edited by haqreu on 25 Nov 2017 13:13, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote:Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...
Нетроично мыслишь! 8) Забыл уже, что завещал пенсионер Mac Buster? :twisted:
"Отринь свои двоичные привычки, всяк сюда входящий!" (ну или не так пафосно, но что-то в этом роде... ) :mrgreen:
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Потихоньку горожу свой вариант Триадора в логисиме - надеюсь обойтись ячейками памяти с запоминанием по уровню и одной инструкцией на такт (точнее на один период тактирующей синусоиды):
Triador2017-11-24.jpg
На борту двоичный ROM (пока 10-битный, но я хочу сделать преобразовалку из 8 битов в 5 тритов и заменить ПЗУ на обычное 2Кбайтное).
Адрес формируется из бинарного представления 6 тритов (т.е. 12 битов - так что ПЗУ будет с неисползуемыми дырами).
При сбросе программный счётчик указывает на адрес нулевой адрес OOOOOO (и там должен быть NOP, т.к. схема иногда его успевает проскочить).
Команды заполнения регистров R1-R4 числовыми значениями уже готовы, теперь горожу копирование регистров...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Lavr wrote:
Shaos wrote:Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...
Нетроично мыслишь! 8) Забыл уже, что завещал пенсионер Mac Buster? :twisted:
"Отринь свои двоичные привычки, всяк сюда входящий!" (ну или не так пафосно, но что-то в этом роде... ) :mrgreen:
Ну в данном случае практичность превыше эстетики :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

haqreu wrote: Я бы разбавил бы чем-нибудь... вроде "вернуться на предыдущую команду в зависимости от флага"
А почему бы нет? Это всего лишь PC-1 или PC-1 2 раза.
Только опять же - если возможно аппаратно и хватит тактов...
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Lavr wrote:
haqreu wrote: Я бы разбавил бы чем-нибудь... вроде "вернуться на предыдущую команду в зависимости от флага"
А почему бы нет? Это всего лишь PC-1 или PC-1 2 раза.
Только опять же - если возможно аппаратно и хватит тактов...
И каким алгоритмам это может помочь?
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

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

Post by haqreu »

Я ж говорю, не думал ещё. Но предлагаю подумать. 27 разных джампов - это перебор, как на мой вкус.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote:надеюсь обойтись ячейками памяти с запоминанием по уровню
Они у тебя на конденсаторах или всё же - триггеры?

Кстати... я-то понимаю, что аппаратный скип сделать легче...
Но вот просто как-то взять и выкинуть из троичного процессора троичное ветвление,
о котором нам талдычили классики "троизма"... :-?
iLavr
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

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

Post by haqreu »

Shaos wrote:надеюсь обойтись ячейками памяти с запоминанием по уровню
Я так и не придумал, как это сделать. Точнее, получалось очень громоздко, основные загвоздки именно при всяких джампах и т.п. В итоге плюнул, сделал по фронту.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Lavr wrote:
Shaos wrote:надеюсь обойтись ячейками памяти с запоминанием по уровню
Они у тебя на конденсаторах или всё же - триггеры?
Буфер с обратной связью - раз уж оно в реальности работает :roll:
Lavr wrote:Кстати... я-то понимаю, что аппаратный скип сделать легче...
Но вот просто как-то взять и выкинуть из троичного процессора троичное ветвление,
о котором там талдычили классики "троизма"... :-?
Ну оно есть в других наших троичных гипотетических процессорах :)
А тут как бы RISC - практичный минимализм и всё такое ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

haqreu wrote:Я ж говорю, не думал ещё. Но предлагаю подумать. 27 разных джампов - это перебор, как на мой вкус.
Ну давай я попробую вместо NPOOO - skip_if_no_overflow сделать двойной SKIP по знаку R1:

- no skip if R1<0
- skip 1 instruction if R1==0
- skip 2 instructions if R1>0

В таком случае можно будет столь любимый Лавром тройной джамп имитировать ;)

TERNARY_SKIP
JP negative_pointer
JP zero_pointer
JP positive_pointer
Я тут за главного - если что шлите мыло на me собака shaos точка net