3

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

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

MOV BX, топор

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

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

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

2 ответа2

0

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

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

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

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .