stringtranslate.com

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

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

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

Часто утверждается, что этот термин произошел от релейного компьютера Harvard Mark I , который хранил инструкции на перфоленте (шириной 24 бита) и данные в электромеханических счетчиках. Эти ранние машины имели хранилище данных, полностью находившееся в центральном процессоре , и не предоставляли доступа к хранилищу инструкций в виде данных. Программы должен был загружать оператор; процессор не смог инициализироваться . Однако в единственной рецензируемой опубликованной статье по этой теме — «Миф о Гарвардской архитектуре», опубликованной в IEEE Annals of the History of Computing [3]  — автор демонстрирует, что:

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

Гарвардская архитектура исторически и традиционно разделена на два адресных пространства, но наличие трех, то есть двух дополнительных (и все они доступны в каждом цикле), также допускается, [4] хотя и редко.

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

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

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

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

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

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

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

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

Скорость

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

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

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

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

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

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

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

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

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

Примечания

  1. ^ Линии IAP 8051-совместимых микроконтроллеров от STC имеют двухпортовую флэш-память, причем один из двух портов подключен к шине команд ядра процессора, а другой порт доступен в области регистров специальных функций.
  2. ^ Как и в хорошо описанном случае с Intel 80486 . [6] : 26–34  [7]

Рекомендации

  1. ^ Конг, Дж. Х.; Анг, LM; Сенг, КП (2010). Минимальный набор команд Процессор AES с использованием Гарвардской архитектуры. 2010 3-я Международная конференция по информатике и информационным технологиям. Том. 9. С. 65–69. doi : 10.1109/ICCSIT.2010.5564522. ISBN 978-1-4244-5537-9.
  2. ^ Венкатесан, Чандран; Султана, М. Табсера; Сумитра, Миннесота; Сурия, М. (2019). Проектирование 16-битного RISC-процессора гарвардской структуры по 45-нм технологии Cadence. 2019 5-я Международная конференция по передовым вычислительным и коммуникационным системам (ICACCS). стр. 173–178. doi : 10.1109/ICACCS.2019.8728479. ISBN 978-1-5386-9531-9.
  3. Поусон, Ричард (30 сентября 2022 г.). «Миф о Гарвардской архитектуре». IEEE Анналы истории вычислений . 44 (3): 59–69. дои : 10.1109/MAHC.2022.3175612. S2CID  252018052.
  4. ^ «Kalimba DSP: Руководство пользователя» (PDF) . Июль 2006. с. 18 . Проверено 23 сентября 2022 г. это трехбанковая архитектура Гарварда.
  5. ^ «386 против 030: Переполненная скоростная полоса» . Журнал доктора Добба , январь 1988 г.
  6. ^ Браун, Джон Форрест (1994). Программирование встраиваемых систем на C и ассемблере. Нью-Йорк: Ван Ностранд Рейнхольд. ISBN 0-442-01817-7. ОСЛК  28966593.
  7. ^ «Программирование встраиваемых систем: опасности кэша ПК». user.ece.cmu.edu . Архивировано из оригинала 15 января 2020 года . Проверено 26 мая 2022 г.
  8. ^ Унгербёк, Г.; Майвальд, Д.; Кезер, HP; Шевиллат, PR; Беро, JP (1985). «Архитектура цифрового сигнального процессора». Журнал исследований и разработок IBM . 29 (2): 132–139. дои : 10.1147/rd.292.0132.
  9. ^ Ху, Юэ-ли; Цао, Цзя-линь; Ран, Фэн; Лян, Чжи-цзянь (2004). «Проектирование высокопроизводительного микроконтроллера». Материалы шестой конференции IEEE CPMT по проектированию и упаковке микросистем высокой плотности, а также анализу отказов компонентов (HDP '04) . стр. 25–28. дои : 10.1109/HPD.2004.1346667. ISBN 0-7803-8620-5.

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