Перезаписывать это тяжелее по-моему т.к. надо считать лишний инкремент. Намного проще подменить следующую инструкцию на NOP - просто надо предусмотреть механизм, чтобы сохранялся флаг на следущую инструкцию и мультиплексорами вместо опкода из памяти выдавались бы все нули, а в конце этой самой следующей инструкции чтобы этот флаг сбрасывался - вобщем как-то так...haqreu wrote:И я не понимаю механику подмены следующей инструкции на OOOOO. Я собирался для пропуска инструкции перезаписывать значение IP. Как просто подменить, мне неясно...
Давайте думать над железкой (TRIADOR)
Moderator: haqreu
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Ну я планировал было делать ещё двойные пропуски (типа, троичный джамп), поэтому простым флагом мне было не обойтись. Я подумаю, спасибо.
А зачем вообще столько разных пропусков нам?
А зачем вообще столько разных пропусков нам?
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Давайте думать над железкой (TRIADOR)
Поскольку Shaos не любит "грязных трюков" (а проще всегоShaos wrote:Намного проще подменить следующую инструкцию на NOP - просто надо предусмотреть механизм, чтобы сохранялся флаг на следущую инструкцию и мультиплексорами вместо опкода из памяти выдавались бы все нули...
такой трюк делать на открытых коллекторах с притяжкой к +5В), то схемотехнически просто
поставить буфер, за ним - притяжку резисторами к +5В и ключи - к 0 В.
В нужный момент - выключаем буфер и включаем ключи к 0 В.
И совсем уж без слова "трюки" это решается в 2 буфера. 2-й буфер выдает на шину 0 В,
когда первый отключен.
P.S. Но сам бы я всё же делал, как предлагает haqreu: пропуск - это IP(PC)+1. Но тут всё начинает
упираться в растактовку команд: IP(PC)+1 в принципе успеем сделать всегда, а вот 2 раза IP(PC)+1 ?
iLavr
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Ну для простоты программирования напримерhaqreu wrote:А зачем вообще столько разных пропусков нам?

P.S. Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Слишком много скипов на мой вкус получается. Я бы разбавил бы чем-нибудь. Ещё не думал, но чем-нибудь вроде "вернуться на предыдущую команду в зависимости от флага"
Last edited by haqreu on 25 Nov 2017 13:13, edited 1 time in total.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Давайте думать над железкой (TRIADOR)
Нетроично мыслишь!Shaos wrote:Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...


"Отринь свои двоичные привычки, всяк сюда входящий!" (ну или не так пафосно, но что-то в этом роде... )

iLavr
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Потихоньку горожу свой вариант Триадора в логисиме - надеюсь обойтись ячейками памяти с запоминанием по уровню и одной инструкцией на такт (точнее на один период тактирующей синусоиды):
На борту двоичный ROM (пока 10-битный, но я хочу сделать преобразовалку из 8 битов в 5 тритов и заменить ПЗУ на обычное 2Кбайтное).
Адрес формируется из бинарного представления 6 тритов (т.е. 12 битов - так что ПЗУ будет с неисползуемыми дырами).
При сбросе программный счётчик указывает на адрес нулевой адрес OOOOOO (и там должен быть NOP, т.к. схема иногда его успевает проскочить).
Команды заполнения регистров R1-R4 числовыми значениями уже готовы, теперь горожу копирование регистров...
На борту двоичный 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
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Ну в данном случае практичность превыше эстетикиLavr wrote:Нетроично мыслишь!Shaos wrote:Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...Забыл уже, что завещал пенсионер Mac Buster?
![]()
"Отринь свои двоичные привычки, всяк сюда входящий!" (ну или не так пафосно, но что-то в этом роде... )

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Давайте думать над железкой (TRIADOR)
А почему бы нет? Это всего лишь PC-1 или PC-1 2 раза.haqreu wrote: Я бы разбавил бы чем-нибудь... вроде "вернуться на предыдущую команду в зависимости от флага"
Только опять же - если возможно аппаратно и хватит тактов...
iLavr
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
И каким алгоритмам это может помочь?Lavr wrote:А почему бы нет? Это всего лишь PC-1 или PC-1 2 раза.haqreu wrote: Я бы разбавил бы чем-нибудь... вроде "вернуться на предыдущую команду в зависимости от флага"
Только опять же - если возможно аппаратно и хватит тактов...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Я ж говорю, не думал ещё. Но предлагаю подумать. 27 разных джампов - это перебор, как на мой вкус.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Давайте думать над железкой (TRIADOR)
Они у тебя на конденсаторах или всё же - триггеры?Shaos wrote:надеюсь обойтись ячейками памяти с запоминанием по уровню
Кстати... я-то понимаю, что аппаратный скип сделать легче...
Но вот просто как-то взять и выкинуть из троичного процессора троичное ветвление,
о котором нам талдычили классики "троизма"...

iLavr
-
- Maniac
- Posts: 318
- Joined: 10 Mar 2017 05:30
Re: Давайте думать над железкой (TRIADOR)
Я так и не придумал, как это сделать. Точнее, получалось очень громоздко, основные загвоздки именно при всяких джампах и т.п. В итоге плюнул, сделал по фронту.Shaos wrote:надеюсь обойтись ячейками памяти с запоминанием по уровню
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Буфер с обратной связью - раз уж оно в реальности работаетLavr wrote:Они у тебя на конденсаторах или всё же - триггеры?Shaos wrote:надеюсь обойтись ячейками памяти с запоминанием по уровню

Ну оно есть в других наших троичных гипотетических процессорахLavr wrote:Кстати... я-то понимаю, что аппаратный скип сделать легче...
Но вот просто как-то взять и выкинуть из троичного процессора троичное ветвление,
о котором там талдычили классики "троизма"...

А тут как бы RISC - практичный минимализм и всё такое

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23990
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Давайте думать над железкой (TRIADOR)
Ну давай я попробую вместо NPOOO - skip_if_no_overflow сделать двойной SKIP по знаку R1:haqreu wrote:Я ж говорю, не думал ещё. Но предлагаю подумать. 27 разных джампов - это перебор, как на мой вкус.
- 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