Гарвардская архитектура: как она улучшает скорость?

Я не понимаю разницы между архитектурами фон Неймана и Гарварда. Допустим, у вас есть эти две инструкции:

MOV топор, [адрес2]

MOV BX, топор

В гарвардской архитектуре процессор должен ждать два цикла, прежде чем выполнять вторую инструкцию: первую, чтобы декодировать первую инструкцию, и вторую, чтобы загрузить значение по адресу 2 в ax. Он не может выполнить инструкцию 2 немедленно, потому что она использует значение ax.

Таким образом, затраченное время будет таким же, как если бы это был фон Нейман, в этом более позднем случае первый цикл будет использоваться для декодирования инструкции, а второй цикл - для извлечения содержимого адреса 2 из памяти программы.

Что я не понимаю?

2 ответа

Разделение инструкций и данных легко оценить. Однако их поведение совсем другое.

Инструкции будут в основном проходить по линейной траектории и иметь очень похожие размеры.

Данные с другой стороны будут иметь полуслучайные местоположения, пакетные и разных размеров.

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

Ваш пример по номинальной стоимости кажется разумным вопросом, но с процессором Von Newmann загрузка памяти для завершения первой инструкции выдержит загрузку и декодирование второй инструкции. Тогда как на гарвардском процессоре вторая инструкция может быть загружена декодированной и наполовину обработанной, когда первая инструкция завершена.

Поток процессора фон Неймана

  1. загрузить инструкцию одну
  2. инструкция декодирования один
  3. загрузить данные из внешней памяти
  4. положить данные в регистр
  5. загрузить инструкцию два
  6. инструкция декодирования два
  7. скопировать регистр для регистрации

Гарвардский процессор потока

  1. загрузить инструкцию одну

  2. инструкция декодирования один

    3a. загрузить данные из внешней памяти в регистр

    3b. загрузить инструкцию два

    4а. положить данные в регистр

    4b. инструкция декодирования два

    1. скопировать регистр для регистрации

Насколько я читаю, Гарвард может читать инструкцию и читать / записывать данные одновременно, а фон Нейман может только либо читать инструкцию, либо читать / записывать данные, но не одновременно.

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