|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Давайте думать над железкой (TRIADOR)
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да не то, чтобы он мной столь любимый... Но ведь надо проверить в программах - так ли уж он хорош, как нам рассказывали:" симметричные весы против двух взвешиваний". Если его не будет, мы этого не узнаем, и никто не узнает... И все на нас скажут:" Фу... " И, может быть, будут правЫ...
_________________ iLavr
|
25 Nov 2017 13:47 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Да - я вижу сложности с одной инструкцией на такт и ячейками по уровню. Например похоже для передачи управления на адрес придётся подсовывать декремент этого адреса для защёлкивания в левых ячейках программного счётчика, чтобы потом оно прошло через полусумматоры и сработало как надо (хотя это могла бы быть "фича" процессора, когда для передачи управления на адрес N надо делать JP N-1 ; ) либо надо как-то хитро отменять инкремент при передаче управления. Также есть проблема с инкрементом и декрементом R1 - похоже надо иметь заранее подсчитанные R1+1 и R1-1 (в двух разных теневых регистрах), чтобы в нужный момент защёлкнуть либо одно, либо другое в ячейках памяти регистра R1 (и во флаге C)... P.S. С универсальной унарной операцией OP ttt тоже есть проблемы если делать как задумано - т.е. брать R1, применять к нему OP ttt и класть обратно в R1 - так не выйдет (в пределах одного такта), возможно стоит изменить спецификацию, скажем OP ttt будет всё также применяться к R1, но результат сохранять в R2?...
|
25 Nov 2017 16:12 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Сделал преобразовалку из 8 битов в 5 тритов в виде ПЗУ 8->10 (подробнее тут): Теперь можно и за ассемблер браться P.S. Тут видно, что в схеме стоит 2К ПЗУ, в котором сохранена только программа из положительных троичных адресов, начиная с нулевого т.е. всего 365 слов - 2K нужно чтобы обращаться к памяти по "binary coded ternary" адресу, например: OOOOOO -> 00 00 00 00 00 00 (адрес 0) OOOOOP -> 00 00 00 00 00 01 (адрес 1) OOOOPN -> 00 00 00 00 01 10 (адрес 6) OOOOPO -> 00 00 00 00 01 00 (адрес 4) OOOOPP -> 00 00 00 00 01 01 (адрес 5) OOOPNN -> 00 00 00 01 10 10 (адрес 26) и т.д. вплоть до PPPPPP -> 01 01 01 01 01 01 (адрес 1365) из которых мы берём только 11 бит (без старшего нуля), чтобы адресовать 2К ПЗУ P.P.S. Если в будущем захочется залезть в отрицательную область троичной памяти, то можно вторую 2К ПЗУ прицепить... P.P.P.S. На самом деле часть отрицательной области троичной памяти таки попадает в эти 2K (не попадает только треть троичного адресного пространства): Nxxxxx - не попадает (от -364 до -122) Oxxxxx - попадает (от -121 до +121) Pxxxxx - попадает (от +122 до +364) т.е. у нас в 2K ПЗУ будет не 365 пятитритных слов, как я написал чуть выше, а целых 486 (или 23.7% от всего объёма 2К)!
|
25 Nov 2017 17:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
В описании на картинке я перепутал направление копирования регистров в команде RR - исправился: Вот думаю, а не убрать ли из описания эти N,O,P дабы никого не путать? Например вместо NNttt в столбике код писать -108+ttt (т.е. для читателя троичные коды будут как бы десятичными) - или это плохая идея?...
|
25 Nov 2017 23:19 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Не надо убирать N,O,P. Тот, кто не разобрался с ними, вряд ли будет разбираться с архитектурой процессора.
Ты там в картинке возведение в степень замени на умножение (вместо t2^9 лучше сделать t2*9)
|
26 Nov 2017 00:45 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Кстати, я, конечно, понимаю, что счётчик у нас скрытый регистр. Сейчас при каждом джампе надо руками писать в R13 номер банка памяти. Нам точно не нужно копирование из счётчика в R13? Руками всегда справимся?
|
26 Nov 2017 00:48 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Вроде победил копирование регистров (на примере первых 4-х) включая инкремент-декремент R1 (ради этого, как и писал выше, пришлось завести 2 теневых регистра, в которых всегда хранится R1+1 и R1-1): Кстати многие части схемы сугубо двоичные (как например сигналы выбора регистра для записи, сигналы дешифрованных опкодов и т.д.) так что моя реализация будет гибридной Архив с файлом для Logisim прилагается (если при запуске оно начинает глючить, то надо выйти из Логисима и зайти обратно, загрузив всё заново): http://nedopc.org/ternary/ternary_circ.zip
|
26 Nov 2017 01:28 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Да - точно, умножение там надо Исправил Ну если вышел из своего сегмента путём естественного перехода через границу, то да - надо писать руками (это не баг, это фича ; ) А вообще если ты уже прыгнул в сегмент по R13, то значение там же ведь и останется - прыгай дальше сколько тебе влезет в пределах сегмента не трогая R13
|
26 Nov 2017 01:30 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Не согласен. При старте триадора регистры не были инициализированы. Поэтому надо писать всегда, даже при самом первом джампе, находясь в первом сегменте памяти.
|
26 Nov 2017 01:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
В моей логисимовской модели все регистры обнуляются при сбросе (троичные MEM-ы так подключены, что один из ихних входов является сбрасывающим) - соответственно в R13 по сбросу будет OOO и программный указатель указывает на OOOOOO и JP ttt будет работать прямо сразу как надо (начинать с нуля это оч.удобно, в особенности если вместо троичной памяти использовать двоичную, где нулевой адрес отображается на начало памяти)
|
26 Nov 2017 01:47 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Нормальной она будет, а никакой не гибридной. Не повторяй чужих глупостей! Двоичная логика является органичным подмножеством троичной логики.В этом нет ничего неестественного. Более того все (или почти все, кроме весьма специфичных) элементы троичной логики при отбрасывании ситуации " не определено" должны корректно перейти в аналогичные элементы двоичной логики. Об этом прямо написано во всех теоретических основах троичности и нефиг этого "стесняться". Я так проверял все свои NAND, OR, XOR и т.д. сделанные на полевых транзисторах. Если такой "даунгрейд" проходит неверно, то троичная схема скорее всего некорректна. Если троичный дешифратор, скажем 2-в-9, дешифрует уровнями "FALSE" - он что - перестает быть троичным? Если троичный буфер пропускает по уровню "TRUE" - он что - тоже перестает быть троичным? Сигналы управления мы выбираем тех уровней, что нам схемотехически удобны. И не надо тут путать "божий дар с яичницей"!
_________________ iLavr
|
26 Nov 2017 04:24 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Да я не стесняюсь Я просто заранее предупреждаю
|
26 Nov 2017 05:42 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да просто один товарищ тут, не почитав, и не подумав, вбросил какие-то беспочвенные сомнения: http://www.nedopc.org/forum/viewtopic.php?p=140619#p140619http://www.nedopc.org/forum/viewtopic.php?p=140048#p140048И, как говорится, " ложечки-то нашлись, но и осадочек остался"... Я, к примеру, специально разрабатывал троичые логиеские элементы под питание +/-6 В, чтобы в размах 12 В без проблем применять с ними обычную CMOS-логику, если надо.
_________________ iLavr
|
26 Nov 2017 06:18 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Добавил все 13 регистров Последний архив с моделью для Logisim всегда лежит тут: http://nedopc.org/ternary/ternary_circ.zip
|
26 Nov 2017 11:05 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22574 Location: Silicon Valley
|
Вот думаю может выходы регистров в какой-то индикатор вывести? Например в матрицу 6x5 красно-зелёных светодиодов: Регистры R1,R2 и R13 исключены из индикации т.к. они чаще всего будут использоваться в процессе работы программы... P.S. Хотя если добавить R1 и R2, то матрица уже станет 6x6, что несколько повеселее
|
26 Nov 2017 11:45 |
|
|
Who is online |
Users browsing this forum: No registered users and 44 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
|
|