nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 17 Apr 2024 17:34



Reply to topic  [ 410 posts ]  Go to page Previous  1 ... 8, 9, 10, 11, 12, 13, 14 ... 28  Next
Давайте думать над железкой (TRIADOR) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
haqreu wrote:
И я не понимаю механику подмены следующей инструкции на OOOOO. Я собирался для пропуска инструкции перезаписывать значение IP. Как просто подменить, мне неясно...

Перезаписывать это тяжелее по-моему т.к. надо считать лишний инкремент. Намного проще подменить следующую инструкцию на NOP - просто надо предусмотреть механизм, чтобы сохранялся флаг на следущую инструкцию и мультиплексорами вместо опкода из памяти выдавались бы все нули, а в конце этой самой следующей инструкции чтобы этот флаг сбрасывался - вобщем как-то так...

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


25 Nov 2017 02:58
Profile WWW
Maniac

Joined: 10 Mar 2017 05:30
Posts: 318
Reply with quote
Ну я планировал было делать ещё двойные пропуски (типа, троичный джамп), поэтому простым флагом мне было не обойтись. Я подумаю, спасибо.

А зачем вообще столько разных пропусков нам?


25 Nov 2017 03:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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


25 Nov 2017 05:21
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
haqreu wrote:
А зачем вообще столько разных пропусков нам?

Ну для простоты программирования например :)

P.S. Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...

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


25 Nov 2017 10:07
Profile WWW
Maniac

Joined: 10 Mar 2017 05:30
Posts: 318
Reply with quote
Слишком много скипов на мой вкус получается. Я бы разбавил бы чем-нибудь. Ещё не думал, но чем-нибудь вроде "вернуться на предыдущую команду в зависимости от флага"


Last edited by haqreu on 25 Nov 2017 13:13, edited 1 time in total.



25 Nov 2017 13:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...

Нетроично мыслишь! 8) Забыл уже, что завещал пенсионер Mac Buster? :twisted:
"Отринь свои двоичные привычки, всяк сюда входящий!" (ну или не так пафосно, но что-то в этом роде... ) :mrgreen:

_________________
iLavr


25 Nov 2017 13:12
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
Потихоньку горожу свой вариант Триадора в логисиме - надеюсь обойтись ячейками памяти с запоминанием по уровню и одной инструкцией на такт (точнее на один период тактирующей синусоиды):

Attachment:
Triador2017-11-24.jpg
Triador2017-11-24.jpg [ 138.66 KiB | Viewed 5301 times ]


На борту двоичный ROM (пока 10-битный, но я хочу сделать преобразовалку из 8 битов в 5 тритов и заменить ПЗУ на обычное 2Кбайтное).
Адрес формируется из бинарного представления 6 тритов (т.е. 12 битов - так что ПЗУ будет с неисползуемыми дырами).
При сбросе программный счётчик указывает на адрес нулевой адрес OOOOOO (и там должен быть NOP, т.к. схема иногда его успевает проскочить).
Команды заполнения регистров R1-R4 числовыми значениями уже готовы, теперь горожу копирование регистров...

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


25 Nov 2017 13:13
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
Я честно говоря не могу придумать широкомасштабного применения тройному джампу, а вот простой скип по равенству или неравенству флага тому или иному значению - это пожалуйста...

Нетроично мыслишь! 8) Забыл уже, что завещал пенсионер Mac Buster? :twisted:
"Отринь свои двоичные привычки, всяк сюда входящий!" (ну или не так пафосно, но что-то в этом роде... ) :mrgreen:

Ну в данном случае практичность превыше эстетики :)

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


25 Nov 2017 13:15
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Я бы разбавил бы чем-нибудь... вроде "вернуться на предыдущую команду в зависимости от флага"

А почему бы нет? Это всего лишь PC-1 или PC-1 2 раза.
Только опять же - если возможно аппаратно и хватит тактов...

_________________
iLavr


25 Nov 2017 13:16
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
Lavr wrote:
haqreu wrote:
Я бы разбавил бы чем-нибудь... вроде "вернуться на предыдущую команду в зависимости от флага"

А почему бы нет? Это всего лишь PC-1 или PC-1 2 раза.
Только опять же - если возможно аппаратно и хватит тактов...

И каким алгоритмам это может помочь?

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


25 Nov 2017 13:19
Profile WWW
Maniac

Joined: 10 Mar 2017 05:30
Posts: 318
Reply with quote
Я ж говорю, не думал ещё. Но предлагаю подумать. 27 разных джампов - это перебор, как на мой вкус.


25 Nov 2017 13:21
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
надеюсь обойтись ячейками памяти с запоминанием по уровню

Они у тебя на конденсаторах или всё же - триггеры?

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

_________________
iLavr


25 Nov 2017 13:22
Profile
Maniac

Joined: 10 Mar 2017 05:30
Posts: 318
Reply with quote
Shaos wrote:
надеюсь обойтись ячейками памяти с запоминанием по уровню


Я так и не придумал, как это сделать. Точнее, получалось очень громоздко, основные загвоздки именно при всяких джампах и т.п. В итоге плюнул, сделал по фронту.


25 Nov 2017 13:25
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
надеюсь обойтись ячейками памяти с запоминанием по уровню

Они у тебя на конденсаторах или всё же - триггеры?

Буфер с обратной связью - раз уж оно в реальности работает :roll:

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

Ну оно есть в других наших троичных гипотетических процессорах :)
А тут как бы RISC - практичный минимализм и всё такое ;)

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


25 Nov 2017 13:27
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22523
Location: Silicon Valley
Reply with quote
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

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


25 Nov 2017 13:39
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 410 posts ]  Go to page Previous  1 ... 8, 9, 10, 11, 12, 13, 14 ... 28  Next

Who is online

Users browsing this forum: No registered users and 9 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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.