CISC и RISC архитектуры

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

1 ответ

Нет никакой связи между Instruction Set ( RISC и CISC) с архитектурой процессора ( Гарвардская архитектура и Архитектура фон Неймана). Оба набора команд могут использоваться с любой архитектурой.

В более старой архитектуре ARM использовалась архитектура фон Неймана с RISC, а позже с ARM9 они перешли на архитектуру Гарварда с RISC. Последний процессор ARM использует гораздо более продвинутую гибридную архитектуру.

Фон Нейман против Гарварда не является явной разницей. Очевидно, что микросхема с отдельными шинами памяти для инструкций и данных - это гарвардская архитектура. Но при добавлении хороших кешей выигрыш в производительности отдельных шин значительно снижается.

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

Я думаю, что, вероятно, самая большая разница в том, что на настоящем ЦП фон Неймана вы можете записывать в память команд, а затем сразу выполнять написанные вами инструкции. Например, на 8086 вы можете писать в инструкцию сразу после инструкции записи! В то время как на процессоре Гарварда, даже с унифицированной шиной памяти, вам нужно было бы следовать за записью с помощью инструкции для принудительной записи в реальную память, возможно, инструкции для предотвращения выполнения вне очереди, а затем инструкции чтобы очистить кеш инструкций в этом месте. Этот процесс может занять несколько сотен циклов - и он необходим, поскольку архитектура чипа предполагает, что память команд и память данных не взаимодействуют.

Это изменение может произойти даже в том же семействе процессоров. Исходный 68000 без кеша, безусловно, является ЦП CISC, но если вы пишете в поток инструкций, вы должны остерегаться предварительной выборки инструкций и, возможно, добавить NOP после записи в память. Однако более поздние варианты семейства 680x0 становились все более и более похожими на Гарвард. Шина внешней памяти могла остаться единой, но, например, кеши инструкций и данных были раздельными.

Другие вопросы по тегам