nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 07:16



Reply to topic  [ 9 posts ] 
Система команд и адресация ? 
Author Message
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
Привет всем

делал (писал на vhdl) свой проц. хотел типа риск что б был.
но команд получилось больше 40

это то что я делал у себя
Code:
Load - загрузить регистр/память из регистра/памяти/команды
Swap - обменять 2 регистра/памяти
Comp - сравнить
And / Or / Xor - логические команды
Slr / Sll / Sar - сдвиги вправо/влево логические и арифметические
Ror / Rol / Rorc / Rolc - сдвиг с переносом
Add / Addc / Adds / Sub / Subc / Subs - сложение/вычитание простое/с переносом/со знаком
Mul / Muls / Div / Divs / Mod - умножение/деление/остаток
Jmp / Call / Int / Ret - команды переходов
Push / Pop - стек
BitSet / BitReset / BitTest - работа с битами


и соотвественно адресация.
в рисках было регистр-регистр и регистр-память, а вот в армах (а он риск?) косвенной много.
один мой знакомый говорит что проц без косвенно-косвенной адресации это не проц (ну любит он 68000)


а какой набор был бы оптимально-минимальный ?


Attachments:
Screenshot from 2022-01-17 00-23-03.png
Screenshot from 2022-01-17 00-23-03.png [ 61.84 KiB | Viewed 6134 times ]
01 Jan 2022 04:58
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Заменил DOC на картинку т.к. не у всех Word есть, чтобы эту табличку поглядеть...

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


17 Jan 2022 01:31
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
imsushka wrote:
а какой набор был бы оптимально-минимальный ?

Это смотря для чего он оптимально-минимальный...
В PDP-8 был минимальный набор команд, даже OR, XOR не было, но как-то они справлялись. :wink:

Я когда делал свой проц, добавлял команды понемногу и пробовал программировать.
Если казалось, что неудобно, добавлял ещё команд...

_________________
iLavr


17 Jan 2022 07:52
Profile
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
ну у меня не 4х битный
я сразу на 256 бит замахивался, помня высказывания что 640 кил хватит всем
правда 256 только для операндов, адресация 64 бита

а проц общего назначения

началось все с ОСи. на то время все писали свою ОСь. и я в том числе.
хотел микроядро что б было. но у него большие накладные расходы на переключение задач.
ну я и полез в процессор.
идея была сделать большой регистровый файл и просто, при переключении задач, переключать банку с регистрами. как в MSX
и просто регистров на 1 задачу побольше. что б к памяти было меньше обращений. 1 килобайт регистров, как в 8051, но с доступом в 1-2(16)-4(32)-8(64)-16(128)-32(256бит) байт.

на тот момент, 20 лет назад, моя поделка не в одну плисину не влезала. ну или я не додумал что.
реализовал исполнительный блок и регистровый блок. начал делать кеш команд и данных, но не понял как и что и забросил
а счас стал интересоваца плисами и что то опять потянуло доделывать.

с армом много работаю, вот и адресацию надо наверно переделывать


18 Jan 2022 08:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
imsushka wrote:
ну у меня не 4х битный

Да какая разница, сколько-битный он у вас?... :roll:
Вы спрашиваете:
imsushka wrote:
а какой набор был бы оптимально-минимальный ?
Я вам по сути этого вопроса и ответил.

PDP-8-то он и вовсе был 12-битный... :wink:

_________________
iLavr


21 Jan 2022 09:23
Profile
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
ну это понятно

раньше набор команд был расчитан на удобство пасания на асме
а сейчас восновном все на ЯВУ и соотвественно богатый набор команд не используется
только если ктото оптимизировал библиотеку на асме
и тоже самое с регистрами. все не используются.

получается что под свой проц писать свой компилятор
ладно, буду ковырять дальше


21 Jan 2022 22:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
imsushka wrote:
получается что под свой проц писать свой компилятор

Именно так и получается - "под свой проц писать свой компилятор".
Я под свои процы их уже два написал.

Просто когда я делал первый проц, я, так же, как и вы, задавался вопросом о необходимом
и достаточном наборе команд.
И пришел я к выводу, что полноценного ответа на этот вопрос просто нет.

А для себя я выработал ту методику, о которой вам тут написал:
Lavr wrote:
...добавлял команды понемногу и пробовал программировать.
Если казалось, что неудобно, добавлял ещё команд...

Закономерность здесь такова, что увеличение числа команд требует увеличения аппаратных ресурсов.
И в какой-то момент надо прийти к компромиссу и остановиться.

Для меня, к примеру, было шоком, что в системе команд PDP-8 нет таких привычных команд,
типа MVI A,NNh;
есть только команды типа:
Code:
   LDA ADDR;
   ...
ADDR:
   DB  NNh

Обошлись они без MVI A,NNh, а PDP-8 - легендарная машина... :wink:

_________________
iLavr


22 Jan 2022 09:12
Profile
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
Lavr wrote:
imsushka wrote:
Для меня, к примеру, было шоком, что в системе команд PDP-8 нет таких привычных команд,
типа MVI A,NNh;
есть только команды типа:
Code:
   LDA ADDR;
   ...
ADDR:
   DB  NNh

Обошлись они без MVI A,NNh, а PDP-8 - легендарная машина... :wink:


меня вот это сильно напрягает в арме. до 50% программы могут занимать указатели.
а вот что интерестно, что было бы быстрее, это MVI A,NNh или LDA ADDR ? в любом случае лишние такты


24 Jan 2022 07:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
imsushka wrote:
а вот что интересно, что было бы быстрее, это MVI A,NNh или LDA ADDR ?

По моему опыту MVI A,NNh - быстрее, хотя бы потому что 2-байтная, и байт NNh идёт следом.
В случае LDA ADDR - сначала считываем адрес, он можем быть 2-байтный, выставляем адрес
на шину, и только тут берём из памяти байт.

_________________
iLavr


24 Jan 2022 12:38
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 9 posts ] 

Who is online

Users browsing this forum: No registered users and 18 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.