Гарвардская архитектура - Harvard architecture

Гарвардская архитектура

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

Термин произошел от Гарвард Марк I релейный компьютер, на котором хранятся инструкции перфолента (Шириной 24 бита) и данные в электромеханический счетчики. Эти ранние машины имели хранилище данных полностью внутри центральное процессорное устройство, и не предоставлял доступа к хранилищу инструкций как к данным. Программы должны быть загружены оператором; процессор не мог инициализировать сам.

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

Детали памяти

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

Контраст с архитектурой фон Неймана

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

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

Контраст с модифицированной архитектурой Гарварда

А модифицированная архитектура Гарварда машина очень похожа на машину с гарвардской архитектурой, но она ослабляет строгое разделение между инструкциями и данными, при этом позволяя процессору одновременно обращаться к двум (или более) шинам памяти. Самая распространенная модификация включает отдельную инструкцию и данные тайники поддерживаются общим адресным пространством. В то время как ЦП работает из кеша, он действует как чистая гарвардская машина. При доступе к резервной памяти он действует как машина фон Неймана (где код можно перемещать как данные, что является мощной техникой). Эта модификация широко распространена в современных процессорах, таких как ARM архитектура, Питание ISA и x86 процессоры. Иногда ее свободно называют гарвардской архитектурой, не обращая внимания на тот факт, что она на самом деле «модифицирована».

Другая модификация обеспечивает путь между памятью команд (например, ROM или флэш-память ) и ЦП, чтобы слова из памяти команд обрабатывались как данные только для чтения. Этот метод используется в некоторых микроконтроллерах, включая Atmel AVR. Это позволяет постоянные данные, такие как текстовые строки или таблицы функций, чтобы к ним можно было получить доступ без предварительного копирования в память данных, сохраняя скудную (и энергоемкую) память данных для переменных чтения / записи. Особый машинный язык инструкции предоставляются для чтения данных из памяти инструкций, или к памяти инструкций можно получить доступ с помощью периферийного интерфейса.[а] (Это отличается от инструкций, которые сами включают в себя постоянные данные, хотя для отдельных констант эти два механизма могут заменять друг друга.)

Скорость

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

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

Внутренний и внешний дизайн

Современные высокопроизводительные микросхемы ЦП включают аспекты архитектуры Гарварда и фон Неймана. В частности, версия "разделенного кеша" модифицированная архитектура Гарварда очень распространено. Кэш-память ЦП разделена на кэш инструкций и кэш данных. Гарвардская архитектура используется для доступа ЦП к кеш-памяти. Однако в случае промаха кеша данные извлекаются из основной памяти, которая формально не разделена на отдельные разделы инструкций и данных, хотя вполне могут иметь отдельные контроллеры памяти, используемые для одновременного доступа к ОЗУ, ПЗУ и (НИ ) флэш-память.

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

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

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

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

  • Цифровые сигнальные процессоры (DSP) обычно выполняют небольшие, высоко оптимизированные алгоритмы обработки аудио или видео. Они избегают кеширования, потому что их поведение должно быть чрезвычайно воспроизводимым. Трудности работы с множеством адресных пространств имеют второстепенное значение для скорости выполнения. Следовательно, некоторые DSP имеют несколько запоминающих устройств данных в разных адресных пространствах, чтобы облегчить SIMD и VLIW обработка. Техасские инструменты TMS320 Процессоры C55x, например, имеют несколько параллельных шин данных (две записи, три чтения) и одну шину команд.
  • Микроконтроллеры характеризуются небольшим объемом программ (флэш-память) и данных (SRAM ) памяти и воспользоваться преимуществами архитектуры Гарварда для ускорения обработки за счет одновременного доступа к инструкциям и данным. Раздельное хранилище означает, что память программ и данных может иметь разную разрядность, например, используя 16-разрядные инструкции и 8-разрядные данные. Они также означают, что предварительная выборка инструкций можно выполнять параллельно с другими видами деятельности. Примеры включают ПОС от Microchip Technology, Inc. и AVR от Atmel Corp (теперь часть Microchip Technology).

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

Заметки

  1. ^ Линии IAP 8051-совместимых микроконтроллеров от STC имеют двухпортовую флэш-память, причем один из двух портов подключен к шине команд ядра процессора, а другой порт доступен в области регистров специальных функций.

использованная литература

  1. ^ "386 против 030: многолюдный быстрый переулок ". Журнал доктора Добба, Январь 1988 г.

внешние ссылки