RISC, если честно сказать, означает "Уменьшенная сложность набора инструкций" - количество инструкций не обязательно сокращается, но каждая инструкция проще, с точки зрения машинных циклов, необходимых для ее выполнения, и с точки зрения количества вентилей ( или магазин микрокодов), посвященный его реализации.
Теория (которая, по крайней мере, частично реализована) заключается в том, что благодаря уменьшению объема логики управления, становится больше места в чипах для регистров и тракта данных. Следовательно, RISC-машины обычно имеют в 2-4 раза больше регистров, чем их CISC-аналоги.
Это оставляет компилятору выполнять работу этой пропущенной логики управления, включая операции "планирования" (упорядочения их), так что, скажем, вы не делаете два добавления подряд, а делаете добавление, затем сдвиг (и разные регистры), поэтому сумматор и переключатель оптимально используются. И компилятор также должен управлять набором регистров, чтобы оптимизировать перемещение в регистры и из них, минимизируя доступ к хранилищу. Кроме того, компилятор должен знать, как наилучшим образом использовать нечетные инструкции (такие как "сдвиг влево и маска с литералом"), поскольку они обычно имеют некоторый (возможно, странный) сценарий, в котором они являются относительно мощными.
В результате инструкции, сгенерированные хорошим компилятором RISC, практически невозможно расшифровать. Даже если вы хорошо знаете набор инструкций, выяснить, что какое-то значение из получаса назад все еще находится в регистре 12, в лучшем случае сложно, даже если бы не было запутанных операций сдвига и маски, происходящих все время.
(Для тех, кто, по-видимому, не верит, что я знаю, о чем я говорю, я впервые был связан с RISC с IBM 801 в начале 70-х, и я был на первом месте с Джорджем Радином и Марти Хопкинсом .)