а. RISC команды всё ещё медленны. Используется многоступенчатый конвейер для их выполнения. Однако всякий раз при ветвлении программы конвейер сбрасывается и заполняется заново. Большинство ухищрений по выделению новых ступеней конвейера и предсказанию ветвлений уже исчерпали себя.
б. С увеличением быстродействия растёт разрыв между быстрым процессором и медленной памятью. Для увеличения скорости доступа к памяти необходимо использовать кеш память для буферизации потоков данных и команд. Кеш память вносит свою гамму проблем и удорожает систему в целом.
в. RISC процессоры очень неэффективны на операциях вызова и возврата подпрограмм. Эффективность этого механизма критична для языков высокого уровня. Многие RISC процессоры используют большой регистровый файл с окнами для облегчения вызова подпрограмм. Однако, окно должно быть достаточно большое для сохранения локальных данных. Большой регистровый файл - это потеря наиболее драгоценных ресурсов процессора и замедление при переключении контекста на его сохранение и восстановление.
По мнению авторов этой концепции сокращение набора команд является эффективным шагом по повышению производительности. Они исследовали вопрос достижения высокой производительности с ограничением на максимальную простоту. Их цель - исследование, на сколько современная КМОП технология может уменьшить стоимость построения компьютера. Авторы MISC процессора пришли к выводу, что число команд должно быть в районе 32-х, и использовали для их кодировки 5-и разрядное поле команды. Отсюда в каждое 20-и разрядное слово MuP-21 или F21 помещается четыре команды, а в каждое 32-х разрядное слово P32, поместится шесть команд с запасом. Система команд MISC настолько проста, что поместилась на одной страничке.
Микропроцессор F21 Предварительная спецификация 4/97 Central Processing Unit Регистр Имя Использование ------- --- ------------- PC Программный счетчик наращивается последней инструкцией в слове, или устанавливается при переходе, вызове, возврате. A Адресный регистр доступ к памяти через @A, @A+, !A, !A+, устанавливается A!, читается A T Вершина стека данных все операции АЛУ используют T как обязательный операнд S Второй элемент стека данных используется в некоторых операциях АЛУ S2 // S11 стек данных циклический стек под T и S на 16 вложений R Вершина стека возвратов доступ к памяти через @R+, и !R+, используется при вызове, возврате, push и pop R1 // R10 стек возвратов циклический стек под R на 16 вложений, используется для вызова - возврата, или для временного хранения данных Код Имя Описание Forth ( with variable A ) --- --- -------- ----------------------- 00 else безусловный переход ELSE 01 T0 переход если T0-19 = false без drop DUP IF 02 call PC+1 ->> R, переход : 03 C0 переход если T20 = false CARRY? IF 06 ; PC <<- R (возврат из подпрограммы) ; 08 @R+ выборка по адресу R, увеличение R R@ @ R> 1+ >R 09 @A+ выборка по адресу A, увеличение A A @ @ 1 A +! 0A # выборка из PC+1, увеличение PC LIT 0B @A выборка по адресу A A @ @ 0C !R+ сохранение по адресу R, увеличение R R@ ! R> 1+ >R 0D !A+ сохранение по адресу A, увеличение A A @ ! 1 A +! 0F !A сохранение по адресу A A @ ! 10 com дополнение T -1 XOR 11 2* сдвиг T, 0 в T0 2* 12 2/ сдвиг T, T20 в T19 2/ 13 +* сложение S с T если T0 = true DUP 1 AND IF OVER + THEN 14 -or S исключающее-или T XOR 15 and S и T AND 17 + сложение S с T + 18 pop выталкиваем R, вталкивая в T R> 19 A вталкиваем A в T A @ 1A dup вталкиваем T в T DUP 1B over вталкиваем S в T OVER 1C push выталкиваем T, вталкивая в R >R 1D A! выталкиваем T в A A ! 1E nop задержка 2 нс NOP 1F drop выталкиваем T DROP
Более сложные команды формируются как последовательность более простых.
MuP21 - первый член семейства микропроцессоров, основанных на MISC принципах. Он доказывает, что всё ещё есть резерв для эффективного сокращения системы команд. Продолжая сокращать набор команд, микропроцессоры могут дальше упрощаться и повышать эффективность. Поразительно, что MuP21 имеет пиковое быстродействие 100 MIPS, используя устаревший 1.2 микрон КМОП технологический процесс. Уже появился новый кристалл F21 и готовится 32-х разрядный P32.
Используется преимущество стекового процессора в том, что нет декодирования входных и выходного регистров в поле команды. Аппаратная простота MISC процессоров даёт большой выигрыш по сравнению с RISC и CISC процессорами в отношении производительность/стоимость и меньшую мощность потребления.
Чак Мур долго опрашивал клиентов, какой глубины должны быть стеки, но получал неправильные ответы. Этот вопрос ставился много раз. Чак выбрал для F21 глубину 17/18 вложений, но говорит что есть резон сократить стеки до 8/12 вложений в новом P32.
Предполагается что P32 будет выбирать в одной группе шесть инструкций и выполнять их за шесть тактов. Остаётся ещё два бита сверх шести инструкций. Один из них будет использован как бит возврата. Второй бит пока не определён, но есть много предложений по этому поводу.
Это очень многообещающий проект ...