Почему фон Нейман быстрее гарвардской архитектуры

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

В моем понимании: - в архитектуре фон Неймана ЦП может выполнять одну операцию за раз, что означает, что он может извлекать данные или извлекать инструкцию из памяти за один цикл. Таким образом, для выполнения какой-либо операции с данными требуется 2 цикла (один для извлечения данных и один для извлечения инструкции). - в гарвардской архитектуре ЦП может извлекать как данные, так и команду в одном и том же тактовом цикле, поскольку имеется 2 отдельных блока памяти и два отдельных набора шин адресов данных

Итак, если архитектура HV может делать то же самое, что VN делает за один цикл, почему она медленнее? Разве меньше циклов, используемых для одной вещи, означает, что она должна быть быстрее другой? Пожалуйста, будьте осторожны, я новичок во встроенных системах. Спасибо за чтение моего поста!

2 ответа

Решение

В архитектуре фон Неймана ЦП работает последовательно, например, он извлекает инструкцию, декодирует ее, извлекает операнды (данные), вычисляет результат и сохраняет его. Все эти шаги используют один и тот же канал памяти.
Гарвардская архитектура имеет два канала памяти, один для инструкций и один для данных. Он имеет преимущество перед архитектурой фон Неймана, если ЦП поддерживает конвейерную обработку, т. Е. В то время как инструкция x, которая уже была декодирована, извлекает операнды (данные) по каналу данных, инструкция x+1 извлекается одновременно по учебный канал.
Таким образом, если ЦП конвейерен, архитектура Гарварда работает быстрее, чем архитектура фон Неймана.

Это все чисто академическое. И очень устарела. С точки зрения академического типа, гарвардская архитектура может одновременно выполнять транзакцию данных и транзакцию инструкции, при которой фон Нейман может выполнять только одну или другую за один раз.

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

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

Ничто из этого не имеет никакого отношения к набору команд, вы можете, и есть наборы инструкций с разными шинами за ними. В зависимости от набора инструкций, как работает выборка, конвейерная обработка и кэширование, у вас может быть чистый учебник фон Неймана, приближающийся к производительности чистого гарвардского учебника. Но если вы думаете, что предварительное кеширование, предварительная конвейерная обработка одной инструкции за один раз для архитектур с типом времени, то вы можете сказать: 1) ни одна из них не выигрывает, поскольку выборка команд должна ожидать транзакцию данных для загрузки и сохранения (или других команд с доступом к памяти) завершить до того, как произойдет следующая выборка, поэтому гарвард не может выполнять данные и инструкции одновременно. Или 2) вы можете сказать, что Гарварду разрешено делать вещи параллельно, и фон Нейман не выигрывает, и Гарвард выигрывает, поскольку он может завершить простую транзакцию данных и выполнить следующую выборку в том же цикле, периодически обыгрывая фон Неймана циклом.

В чистом смысле, хотя одна инструкция за раз фон Неймана не может быть быстрее, чем Гарвард, она может связать, но не может победить. У Гарварда есть две шины, которые могут работать параллельно, и все остальные факторы остаются постоянными, и разница дает Гарварду небольшое преимущество с точки зрения производительности. Все остальные факторы остаются постоянными (набор команд, проектирование конвейера, предварительная выборка и т. Д.).

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

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

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