stringtranslate.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Скорость

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

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

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

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

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

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

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

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

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

Примечания

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

Ссылки

  1. ^ Noergaard, Tammy (2005). Архитектура встраиваемых систем: полное руководство для инженеров и программистов. Newnes. ISBN 978-0-7506-7792-9.
  2. ^ Kong, JH; Ang, LM; Seng, KP (2010). Минимальный набор инструкций AES-процессора с использованием архитектуры Гарварда. 2010 3-я Международная конференция по компьютерным наукам и информационным технологиям. Том 9. С. 65–69. doi :10.1109/ICCSIT.2010.5564522. ISBN 978-1-4244-5537-9.
  3. ^ Venkatesan, Chandran; Sulthana, M. Thabsera; Sumithra, MG; Suriya, M. (2019). Проектирование 16-битного RISC-процессора Harvard Structure в технологии Cadence 45nm. 5-я Международная конференция по передовым вычислительным и коммуникационным системам (ICACCS) 2019 г. стр. 173–178. doi :10.1109/ICACCS.2019.8728479. ISBN 978-1-5386-9531-9.
  4. ^ Фурбер, СБ (2017-09-19). Архитектура и организация рисков СБИС. Routledge. ISBN 978-1-351-40537-9.
  5. ^ Поусон, Ричард (30 сентября 2022 г.). «Миф об архитектуре Гарварда». IEEE Annals of the History of Computing . 44 (3): 59–69. doi :10.1109/MAHC.2022.3175612. S2CID  252018052.
  6. ^ "Kalimba DSP: Руководство пользователя" (PDF) . Июль 2006. стр. 18. Получено 2022-09-23 . Это трехбанковая архитектура Гарварда.
  7. ^ "386 против 030: переполненная скоростная полоса". Журнал доктора Добба , январь 1988 г.
  8. ^ Браун, Джон Форрест (1994). Программирование встраиваемых систем на языках C и Assembly. Нью-Йорк: Van Nostrand Reinhold. ISBN 0-442-01817-7. OCLC  28966593.
  9. ^ "Программирование встраиваемых систем: опасности кэша ПК". users.ece.cmu.edu . Архивировано из оригинала 15 января 2020 г. Получено 2022-05-26 .
  10. ^ Унгербёк, Г.; Майвальд, Д.; Кэзер, Х. П.; Шевилла, П. Р.; Беро, Дж. П. (1985). «Архитектура цифрового сигнального процессора». IBM Journal of Research and Development . 29 (2): 132–139. doi :10.1147/rd.292.0132.
  11. ^ Ху, Юэ-ли; Цао, Цзя-линь; Ран, Фэн; Лян, Чжи-цзянь (2004). «Проектирование высокопроизводительного микроконтроллера». Труды Шестой конференции IEEE CPMT по проектированию и упаковке высокоплотных микросистем и анализу отказов компонентов (HDP '04) . стр. 25–28. doi :10.1109/HPD.2004.1346667. ISBN 0-7803-8620-5.

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