Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
| | | | Shaos wrote: На самом деле часть отрицательной области троичной памяти таки попадает в эти 2K (не попадает только треть троичного адресного пространства): Nxxxxx - не попадает (от -364 до -122) Oxxxxx - попадает (от -121 до +121) Pxxxxx - попадает (от +122 до +364) т.е. у нас в 2K ПЗУ будет не 365 пятитритных слов, как я написал чуть выше, а целых 486 (или 23.7% от всего объёма 2К)! | | | | |
В случае ручного программирования ПЗУ 2К в логисимовкой модели - вот первые 100 троичных адресов, которые отображаются на начало двоичной памяти следующим образом (в скобках шестнадцатиричный адрес ячейки в ПЗУ): А отображение всех 486 адресов, попадающих в одно 2К ПЗУ, можно посмотреть в приаттаченном файле P.S. Текст программы, которая генерит такой файл:
|
26 Nov 2017 13:06 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Закончил монтировать два сегмента памяти команд, думаю, что для начала мне 54 команд хватит. 33 тримукса на сегмент, соответственно, 66 на два сегмента.
|
26 Nov 2017 13:17 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
Круто У тебя начало программы с NNNNNN идёт? Другими словами в какое адресное пространство ты хочешь подцепить эти 2 сегмента?
|
26 Nov 2017 13:28 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Ты прекращай редактировать посты, уведомления-то не приходят! Да, я бесхитростно начну с -364.
|
26 Nov 2017 14:00 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
Привычка, выработанная за почти 15 лет владения этим форумом Приаттачиваю список всех опкодов Триадора (со скипами, которые вроде бы вполне уместно смотрятся на фоне других - под вопросом только NPOOO). Там опкод указан в троичном виде, потом в десятичном виде (со знаком) и потом в шестнадцатиричном виде (в дополнительном коде) для программирования ПЗУ в модели. Вот выдержка про OPA - я предлагаю вместо R1=OPA(ttt,R1) сделать R2=OPA(ttt,R1), чтобы влезть в одну интсрукцию на такт (я чуть выше писал почему так): Из неожиданно полезного тут получается R2 = -R1 (ONPON)
|
26 Nov 2017 15:02 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Ну я так чувствую, что триадоры будут разных вкусов. У меня все инструкции требуют трёх тактов клока (fetch-decode-execute), и, поскольку я уже весьма продвинулся в железках, то переделывать вряд ли буду.
|
26 Nov 2017 15:07 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Да, именно поэтому у меня будет счётчик семиразрядным: шесть разрядов на номер инструкции и один разряд на номер такта внутри инструкции.
|
26 Nov 2017 15:11 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А зачем отдельный такт на decode? decode он же автоматом происходит во время execute...
_________________ iLavr
|
26 Nov 2017 15:12 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Эх, ничего от вас не скроешь Да, мне нужно только два такта на каждую инструкцию, но мне лень делать неоднородный счётчик, поэтому один такт я буду спать.
|
26 Nov 2017 15:14 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А вот это зря, мне кажется. Лучше не спать, а делать execute за два такта - по интервалам времени удобнее разложится. Хотя, может быть, Вам по месту виднее. Я ж не вижу схемы. Но обычно execute требует больше тактов. Я лично планирую: 3 такта - fetch и 6 тактов - execute...
_________________ iLavr
|
26 Nov 2017 15:22 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Я схемы тоже не вижу, я только в голове измысливаю. Почему мне надо два такта на инструкцию: 1 такт: скопировать данные из регистров во временный буфер (это надо выставить адрес регистра, затем дёрнуть клок для копирования) 2 такт: скопировать обработанный буфер назад в память регистров
Мне кажется, что больше тактов мне не понадобится. Но на всякий случай есть запасной. На данный момент я полностью собрал два сегмента памяти инструкций и почти полностью память регистров. В течение недели-двух соберу обработку команд копирования и инкрементов, там сделаю полную документацию.
|
26 Nov 2017 15:28 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
А до OP ты дошёл в своём железном монстре? А то может сделать единообразно? Плюс скипы Я в своей микроархитектуре 3niti alpha именно так и планировал - там правда 6 тактов получается на инструкцию (3 положительных и 3 отрицательных ибо синусоида ; ) ну и некоторые длинные инструкции могут растянутся на 3 цикла (т.е. всего 9 периодов синусоиды или 18 тактов максимум) А в данном конкретном случае - простота залог здоровья, поэтому пытаюсь быть типа RISC
|
26 Nov 2017 15:42 |
|
|
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
OP?
|
26 Nov 2017 15:43 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Может не счетчик, а дешифратор будет семиразрядным? А то как-то это все плохо укладывается...
_________________ iLavr
|
26 Nov 2017 15:44 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
Ну да - OP (универсальная унарная инструкция): Которая изначально планировалась над R1 (поменять все N на первый "старший" трит аргумента, поменять все O на второй "средний" трит аргумента, поменять все P на третий "младший" трит аргумента), но в моём рисковом варианте я не успеваю обратно результат в R1 засунуть и предложил результат класть в R2...
|
26 Nov 2017 15:48 |
|
|