Наш учитель сказал нам, что архитектура Гарварда является наиболее развитой и производимой архитектурой сегодня и в будущем. Но я думаю, что из-за огромных накладных расходов x86 и систем ARM на базе Von Neumann, на самом деле Von Neumann является наиболее используемой архитектурой сегодня.
Да, MCU с Гарвардом производятся еще больше, но поскольку все они имеют лишь второстепенное назначение (по сравнению с x86 и ARM), то Фон Нейман на самом деле тот самый. Или это действительно Гарвард?
И во-вторых, я знаю, что это странный вопрос, но существует ли какая-либо архитектура, объединяющая оба варианта? Чтобы иметь отдельную память для данных и программ, следовательно, более быструю обработку инструкций, но при этом иметь возможность работать с ними как фон Нейман? Чтобы иметь возможность загружать и выгружать программы в программную память на лету? Разве не так должен был работать x86? Или были бы какие-то узкие места, которые чистый фон Нейман решает? Спасибо.
решение1
x86 — это комбинация того и другого. Если вы посмотрите на кэш L1 современных процессоров, вы заметите, что там есть отдельный кэш для данных и для инструкций. Также покопайтесь в Википедии о x86. Видите ли, современные процессоры x86 на самом деле не являются x86. Вместо этого они эмулируют процессоры x86, транслируя инструкции x86 в свой собственный внутренний микрокод. Фактически, на некоторых процессорах Intel микрокод можно изменять во время работы системы.
Что касается того, что больше производится, я бы сказал, что это Гарвард, в основном из-за PIC и подобных микроконтроллеров. Насколько я могу судить, Von Neumann проще программировать, поэтому не редкость увидеть, как внутренне гарвардские процессоры (вроде x86 и некоторые PIC) представляют себя миру как Von Neumann.