2017-02-05 5 views
-1

Основная разница в RISC и CISC заключается в том, что в RISC нам необходимо использовать регистры для выполнения любой арифметической или логической операции. Но в случае CISC мы можем делать такую ​​операцию непосредственно с местами памяти. Итак, в чем преимущество внедрения регистрового банкинга в архитектурах микроконтроллеров? Вопрос не в пользу RISC, но вопрос в том, что нужно регистрировать в архитектуре RISC. Как и в другой архитектуре, операция CISC может быть выполнена непосредственно с местоположением meomery, нам не нужно брать ее в регистр, а затем снова перемещаться в ячейку памяти. Ниже приведен пример: CISC: MUL A, B RISC: ЛДА R 0, А ЛДА R1, В МУЛ R0, R1 УЛ А, R 0Каковы преимущества внедрения регистра в архитектуре микроконтроллеров, то есть архитектуры хранилища нагрузки

Таким образом, в приведенном выше примере, что является преимуществом использования R0 и R1, т.е. регистры. В чем преимущество архитектуры хранилища загрузки?

+0

Возможный дубликат [Что означает «банк имеет значение?] (Http://stackoverflow.com/questions/13432297/what-does-banking-a-register-mean) – user3528438

+0

Этот вопрос не является дубликатом из [Что означает «банковский регистр»?] (http://stackoverflow.com/questions/13432297/what-does-banking-a-register-mean), потому что этот вопрос касается банковского дела и от того, что мы можем " t получить правильный ответ для преимущества архитектуры регистров. –

+0

Этот вопрос касается не банковских регистров, этот термин был неправильно использован в вопросе. название и вопрос необходимо переписать для ясности. (а затем все еще закрыт, потому что ответа нет). –

ответ

1

Использование регистров может упростить логику выбора операндов функционального unis. С функциональными блоками CISC необходимо иметь возможность извлекать данные из памяти. С RISC все функциональные блоки будут работать на регистрах, так как гарантировано, что данные будут там, поэтому менее сложны.

Кроме того, подумайте о случае, когда у вас несколько операций MUL, некоторые используют данные в местоположении A, некоторые используют B, как показано ниже.

'MUL A, B' 'MUL C, B'

При выполнении операции в CISC, вы будете читать B, в два раза. Но в RISC вы загружаете его в регистр один раз и можете использовать несколько раз. Таким образом, меньше доступа к памяти (кэш).

Также подумайте о количестве бит, необходимых для представления этого MUL в CISC. Поскольку A, B, C могут быть ячейками памяти, они могут находиться где угодно в ваших адресных пространствах. С другой стороны, с регистрами в RISC, бит, необходимый для представления ваших операндов, меньше, следовательно, менее сложный набор команд.

2

Зарегистрировать банковское дело - это что-то еще, я полагаю, вы просто спрашиваете об использовании регистра напрямую или нет. Ну, доступ к памяти занимает целую вечность, даже если кэшируется. Несколько сотен тактовых циклов для каждого из операндов, где в RISC, если вы принимаете схему на основе чистого регистра, которая не все, линии становятся нечеткими. С CISC, если микрокод все равно будет регистрироваться, тогда происходит операция, если не микрокодированная, то она по-прежнему фиксируется во внутреннем временном хранилище (регистры), и тогда операция может начаться. С risc у вас есть пара-три дополнительных, более простых, инструкций, которые фиксируют регистры, занимает столько же времени, сколько и в CISC. Теперь, если алгоритм никогда не использует этот результат или не использует его какое-то время, это может быть победой для CISC (если не микрокодировано), но если значение является промежуточным значением в алгоритме, то явный выигрыш для RISC. Даже если все кэшировано, это от полудюжины до десятков тактовых циклов, чтобы получить каждый параметр и записать его обратно, любые промахи в кеше и это вечность. То же самое для RISC, но с большим количеством регистров и значительно более быстрый доступ к этим регистрам, ноль или один такт для каждого значения и для хранения обратно, для некоторого процента, если не весь алгоритм.

Как и в случае любого бенчмаркинга, тривиально показать случай выигрыша RISC и показать выигрышный случай CISC.

Основная разница между RISC и CISC - это CISC - это сложные инструкции по сокращению времени, в которых RISC они намного проще, вы выполняете задачи, которые вам нужно выполнять, и более жесткий контроль над этими задачами, у вас нет большого количества отходов на каждый шаг , Можно утверждать, что кэш был создан для борьбы с неэффективностью CISC или хотя бы одного популярного. Оба выигрывают конечно, но каждый полагается на других, не так много. Тривиально показать код выигрыша CISC и тривиально показать код выигрыша RISC.То же самое касается VLIW и других.

Конструкции RISC проще, меньше, трубы могут быть короче, компилятор имеет больший контроль над производительностью и т. Д. Таким образом, с микроконтроллерами у вас может быть очень хорошее процессорное ядро ​​с 3-ступенчатым конвейером, который действительно мал, и все еще довольно эффективный. 6502, z80, 8051 и т. Д., По большей части, умерли, вы все еще видите много 8051, если вы ищете, на рабочем столе/ноутбуке, который вы, возможно, читаете, вероятно, имеет один 8051, но это связано с тем, а не из-за его размера или производительности, у вас, вероятно, есть несколько десятков ядер ARM для каждого x86, в пределах одной коробки или, конечно, вокруг дома. CISC будет относительно массивным и неэффективным, возможно, можно снизить энергопотребление до уровня RISC, что может быть просто вопросом дизайна, а не CISC и RISC, но реализация RISC намного лучше работает на Вт на МГц, чем реализации CISC.

0

Как и в предыдущих ответах, мы можем заключить, что использование регистров вместо прямого расположения памяти дает преимущество в эффективности с точки зрения тактового цикла и, следовательно, энергопотребления. Они также приносят пользу с точки зрения сложности инструкций.

Смежные вопросы