Здравствуйте, 0x7be, Вы писали:
Q>>Наличие таких операндов позволило бы сократить систему команд, удалив такие как инкремент/декремент, проверка бита в слове, установка/очистка бита и т.п.
0>А оно точно даст выгоду хоть в чем-то? Мне пока это не очевидно.
Как минимум, оно дает выгоду в быстродействии: для считывания константы не требуется еще раз обращаться к памяти.
0>Сокращение системы команд самоцелью не является.
...после чего ты начинаешь рассказывать о преимуществах RISC
0>Из того, что я понял о философии RISC, её плюс в том, что схема управляющего устройства для такого набора команд существенно проще и быстрее за счет того, что набор команд становится меньше и проще. Ты же предлагаешь идею, которая с одной стороны пытается сократить набор команд, но достичь этого за счёт усложнения логики декодирования команды, т.е. комбинируем худшее из RISC и CISC. Где я ошибаюсь?
RISC понятие относительное и используется часто лишь в рекламных целях, в слове ARM буква R тоже означает RISC, однако система команд там отнюдь не простая. Кстати, там тоже есть сокращенные константы, причем более сложные: там в качестве константы может быть набор единиц и нулей, у которых "расстояние" между крайними единицами не превышающей 8 бит, этот набор может быть помещен в любое место в 32-разрядном слове.
Что же касается декодирования, то декодировать придется не команду, а операнд, самих же команд будет меньше, например не потребуются инкремент и декремент — они заменяются на сложение с единицей. А операнд все равно надо декодировать, у тебя же наверное есть поле где указывается номер регистра, а также находятся ли данные в самом регистре или к ним надо обращаться косвенно через адрес. Просто в тип операнда добавится еще одна возможность: он может быть сокращенной константой.