Модифицированная архитектура Гарварда

редактировать

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

СОДЕРЖАНИЕ
  • 1 Гарвардская архитектура
  • 2 Архитектура фон Неймана
  • 3 Измененная архитектура Гарварда
    • 3.1 Архитектура с разделенным кешем (или почти фон Неймана)
    • 3.2 Архитектура памяти инструкций как данных
    • 3.3 Архитектура памяти данных как инструкций
  • 4 сравнения
  • 5 Современное использование модифицированной архитектуры Гарварда
  • 6 См. Также
  • 7 Примечания
  • 8 ссылки
Гарвардская архитектура
Основная статья: Гарвардская архитектура

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

Физическое разделение памяти команд и данных иногда считается отличительной чертой современных компьютеров с гарвардской архитектурой. С микроконтроллерами (целые компьютерные системы, интегрированные в отдельные микросхемы) становится популярным использование различных технологий памяти для инструкций (например, флэш-память ) и данных (как правило, для чтения / записи памяти ) в машинах фон Неймана. Истинное отличие машины Гарварда состоит в том, что память команд и данных занимают разные адресные пространства. Другими словами, адрес памяти не определяет однозначно место хранения (как в машине фон Неймана); также необходимо знать пространство памяти (инструкции или данные), которому принадлежит адрес.

Архитектура фон Неймана
Основная статья: архитектура фон Неймана

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

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

Измененная архитектура Гарварда

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

Архитектура с разделенным кешем (или почти фон Неймана)

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

Память инструкций как архитектура данных

Другое изменение сохраняет природу «отдельного адресного пространства» машины Гарварда, но предоставляет специальные машинные операции для доступа к содержимому памяти команд в виде данных. Поскольку данные не могут быть непосредственно выполнены в виде инструкций, такие машины не всегда рассматриваются как «модифицированная» гарвардская архитектура:

  • Доступ для чтения: начальные значения данных могут быть скопированы из памяти команд в память данных при запуске программы. Или, если данные не подлежат изменению (это может быть постоянное значение, такое как пи, или текстовая строка ), к ним может получить доступ выполняющаяся программа непосредственно из памяти команд, не занимая места в памяти данных (что является часто дороже).
  • Доступ для записи: обычно требуется возможность перепрограммирования; несколько компьютеров полностью основаны на ПЗУ. Например, микроконтроллер обычно выполняет операции записи во флеш-память, используемую для хранения его инструкций. Эта возможность может использоваться для целей, включая обновления программного обеспечения. Альтернативный метод - замена EEPROM / PROM.

Архитектура памяти данных как инструкций

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

Сравнения

Чтобы отличить модифицированные машины Гарварда от чистых машин Гарварда и фон Неймана, можно использовать три характеристики:

Память инструкций и данных занимают разные адресные пространства.

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

Память инструкций и данных имеет отдельные аппаратные пути к центральному процессору (ЦП).

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

Память инструкций и данных может быть доступна разными способами.

Оригинальная машина Гарварда, Mark I, хранила инструкции на перфоленте и данные в электромеханических счетчиках. Однако это было полностью связано с ограничениями технологии, доступной в то время. Сегодня машина Гарварда, такая как микроконтроллер PIC, может использовать 12-битную флеш-память для инструкций и 8-битную SRAM для данных. Напротив, микроконтроллер фон Неймана, такой как ARM7TDMI, или модифицированное ядро Harvard ARM9, обязательно обеспечивает единообразный доступ к флэш-памяти и SRAM (в этих случаях в виде 8-битных байтов).

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

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

Существуют также процессоры, которые по самому строгому определению являются машинами Гарварда (память программ и данных занимают разные адресные пространства) и модифицируются только в том слабом смысле, что существуют операции для чтения и / или записи памяти программ как данных. Например, инструкции LPM (загрузка памяти программ) и SPM (сохранение памяти программ) в Atmel AVR реализуют такую ​​модификацию. Подобные решения встречаются и в других микроконтроллерах, таких как PIC и Z8Encore!, многие семейства процессоров цифровых сигналов, такие как ядра TI C55x, и другие. Поскольку выполнение инструкций по-прежнему ограничено адресным пространством программы, эти процессоры очень не похожи на машины фон Неймана.

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

Смотрите также
Заметки
Рекомендации
Последняя правка сделана 2023-03-20 01:49:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте