Гарвардская архитектура
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2011 г. ) |
Гарвардская архитектура — это компьютерная архитектура с отдельными хранилищами и сигнальными путями для инструкций и данных . Ее часто противопоставляют архитектуре фон Неймана , где программные инструкции и данные используют одну и ту же память и пути. Эта архитектура часто используется в процессах обработки данных в реальном времени или в приложениях с низким энергопотреблением. [1] [2]
Часто утверждается, что этот термин произошел от Harvard Mark I релейного компьютера , который хранил инструкции на перфоленте (шириной 24 бита) и данные в электромеханических счетчиках. Эти ранние машины имели хранилище данных, полностью находившееся в центральном процессоре , и не предоставляли доступа к хранилищу инструкций в виде данных. Программы должен был загружать оператор; процессор не смог инициализироваться . Однако в единственной рецензируемой опубликованной статье по этой теме - «Миф о Гарвардской архитектуре» , опубликованной в журнале IEEE Annals of the History of Computing, [3] – автор показывает, что:
- «Термин «Гарвардская архитектура» был придуман десятилетия спустя, в контексте проектирования микроконтроллеров» и только «ретроспективно применен к гарвардским машинам, а затем применен к RISC-микропроцессорам с разделенным кэшем»;
- «Так называемые «Гарвардские» и «фон Неймановские» архитектуры часто изображаются как дихотомия , но различные устройства, обозначенные как первые, имеют гораздо больше общего со вторыми, чем друг с другом»;
- «Короче говоря, [архитектура Гарварда] не является архитектурой и не возникла на основе работы в Гарварде».
Современные процессоры кажутся пользователю системами с архитектурой фон Неймана, в которых программный код хранится в той же основной памяти, что и данные. По соображениям производительности, внутренне и практически невидимым для пользователя, большинство проектов имеют отдельные кэши процессора для инструкций и данных с отдельными путями к процессору для каждого. Это одна из форм так называемой модифицированной Гарвардской архитектуры .
Гарвардская архитектура исторически и традиционно разделена на два адресных пространства, но также допускается наличие трех, то есть двух дополнительных (и все они доступны в каждом цикле), [4] пока редко.
Детали памяти [ править ]
В гарвардской архитектуре нет необходимости объединять две памяти по общим характеристикам. В частности, могут различаться ширина слова , время, технология реализации и адреса памяти структура . В некоторых системах инструкции для заранее запрограммированных задач могут храниться в постоянной памяти, тогда как для памяти данных обычно требуется память для чтения и записи . В некоторых системах памяти инструкций гораздо больше, чем памяти данных, поэтому адреса инструкций шире, чем адреса данных.
с архитектурой Неймана Контраст фон
В системе с чистой архитектурой фон Неймана инструкции и данные хранятся в одной и той же памяти, поэтому инструкции извлекаются по тому же пути данных, который используется для извлечения данных. Это означает, что ЦП не может одновременно читать инструкцию и читать или записывать данные из памяти или в память. В компьютере, использующем Гарвардскую архитектуру, ЦП может одновременно читать инструкции и выполнять доступ к памяти данных. [5] даже без кэша . Таким образом, компьютер с гарвардской архитектурой может быть быстрее при заданной сложности схемы, поскольку выборка инструкций и доступ к данным не конкурируют за один канал памяти.
Кроме того, машина с гарвардской архитектурой имеет отдельные адресные пространства кода и данных: нулевой адрес инструкции не совпадает с нулевым адресом данных. Нулевой адрес инструкции может идентифицировать двадцатичетырехбитное значение, а нулевой адрес данных может указывать на восьмибитный байт, который не является частью этого двадцатичетырехбитного значения.
Гарварда с модифицированной Контраст архитектурой
Машина с модифицированной гарвардской архитектурой очень похожа на машину с гарвардской архитектурой, но она ослабляет строгое разделение между инструкциями и данными, в то же время позволяя ЦП одновременно получать доступ к двум (или более) шинам памяти. Наиболее распространенная модификация включает отдельные кэши инструкций и данных , поддерживаемые общим адресным пространством. Хотя ЦП выполняет операции из кэша, он действует как чистая гарвардская машина. При доступе к резервной памяти он действует как машина фон Неймана (где код можно перемещать как данные, что является мощной техникой). Данная модификация широко распространена в современных процессорах, таких как архитектура ARM , Power ISA и процессорах x86 . Иногда ее условно называют Гарвардской архитектурой, не обращая внимания на тот факт, что на самом деле она «модифицирована».
Другая модификация обеспечивает путь между памятью инструкций (например, ПЗУ или флэш-памятью ) и ЦП, что позволяет обрабатывать слова из памяти инструкций как данные, доступные только для чтения. Этот метод используется в некоторых микроконтроллерах, включая Atmel AVR . Это позволяет получать доступ к постоянным данным, таким как текстовые строки или таблицы функций , без необходимости предварительного копирования в память данных, сохраняя дефицитную (и энергоемкую) память данных для чтения/записи переменных. специальные инструкции машинного языка , или доступ к памяти инструкций можно получить с помощью периферийного интерфейса. Для чтения данных из памяти команд предусмотрены [а] (Это отличается от инструкций, которые сами включают константные данные, хотя для отдельных констант эти два механизма могут заменять друг друга.)
Скорость [ править ]
За последние годы скорость ЦП выросла во много раз по сравнению со скоростью доступа к основной памяти. Необходимо позаботиться о том, чтобы уменьшить количество обращений к основной памяти, чтобы сохранить производительность. Если, например, каждая инструкция, выполняемая в ЦП, требует доступа к памяти, компьютер ничего не получит от увеличения скорости ЦП — проблема, называемая привязкой к памяти .
Можно создать чрезвычайно быструю память, но это практично только для небольших объемов памяти из соображений стоимости, мощности и маршрутизации сигналов. Решение состоит в том, чтобы предоставить небольшой объем очень быстрой памяти, известной как кэш ЦП , в которой хранятся данные, к которым недавно обращались. Пока данные, необходимые процессору, находятся в кеше, производительность намного выше, чем когда процессору приходится получать данные из основной памяти. С другой стороны, однако, он все еще может быть ограничен хранением повторяющихся программ или данных и по-прежнему имеет ограничение на размер хранилища и другие потенциальные проблемы, связанные с этим. [б]
и Внутренний дизайн внешний
Современные конструкции высокопроизводительных процессорных микросхем включают в себя аспекты как Гарвардской архитектуры, так и архитектуры фон Неймана. версия модифицированной гарвардской архитектуры В частности, очень распространена с «разделенным кэшем». Кэш-память ЦП разделена на кеш инструкций и кеш данных. Гарвардская архитектура используется для доступа ЦП к кешу. Однако в случае промаха кэша данные извлекаются из основной памяти, которая формально не разделена на отдельные разделы инструкций и данных, хотя вполне может иметь отдельные контроллеры памяти, используемые для одновременного доступа к ОЗУ, ПЗУ и (NOR). ) флэш-память.
Таким образом, хотя архитектура фон Неймана видна в некоторых контекстах, например, когда данные и код проходят через один и тот же контроллер памяти, аппаратная реализация получает эффективность Гарвардской архитектуры для доступа к кэшу и, по крайней мере, к некоторым доступам к основной памяти.
Кроме того, процессоры часто имеют буферы записи, которые позволяют процессорам продолжать работу после записи в некэшированные области. Природа памяти фон Неймана тогда видна, когда инструкции записываются в виде данных процессором, и программное обеспечение должно гарантировать, что кэши (данные и инструкции) и буфер записи синхронизированы, прежде чем пытаться выполнить эти только что написанные инструкции.
архитектуры использование Современное Гарварда
Основное преимущество чистой гарвардской архитектуры — одновременный доступ к более чем одной системе памяти — было уменьшено за счет модифицированных гарвардских процессоров, использующих современные кэш-памяти ЦП системы . Относительно чистые машины с гарвардской архитектурой используются в основном в приложениях, где компромиссы, такие как экономия затрат и мощности за счет исключения кэшей, перевешивают недостатки программирования из-за использования отдельных адресных пространств кода и данных.
- Процессоры цифровых сигналов (DSP) обычно выполняют небольшие высокооптимизированные алгоритмы обработки звука или видео с использованием гарвардской архитектуры. [8] Они избегают кэширования, поскольку их поведение должно быть максимально воспроизводимым. Трудности работы с несколькими адресными пространствами имеют второстепенное значение по сравнению со скоростью выполнения. Следовательно, некоторые DSP имеют несколько памятей данных в разных адресных пространствах для облегчения SIMD и VLIW обработки Texas Instruments TMS320 C55x имеют несколько параллельных шин данных (две записи, три чтения) и одну шину инструкций. . Например, процессоры
- Микроконтроллеры характеризуются небольшим объемом памяти программ (флэш-памяти) и памяти данных ( SRAM ), а также используют преимущества Гарвардской архитектуры для ускорения обработки одновременных инструкций и данных. [9] Раздельное хранилище означает, что память программ и данных может иметь разную разрядность, например, при использовании инструкций шириной 16 бит и данных шириной 8 бит. Они также означают, что предварительная выборка инструкций может выполняться параллельно с другими действиями. Примеры включают PIC от Microchip Technology, Inc. и AVR от Atmel Corp (теперь часть Microchip Technology).
Даже в этих случаях обычно используются специальные инструкции для доступа к программной памяти, как если бы это были данные для таблиц, доступных только для чтения, или для перепрограммирования; эти процессоры представляют собой процессоры с модифицированной гарвардской архитектурой .
Примечания [ править ]
- ^ Линии IAP 8051-совместимых микроконтроллеров от STC имеют двухпортовую флэш-память, причем один из двух портов подключен к шине команд ядра процессора, а другой порт доступен в области регистров специальных функций.
- ^ Как и в хорошо описанном случае с Intel 80486 . [6] : 26–34 [7]
Ссылки [ править ]
- ^ Конг, Дж. Х.; Анг, LM; Сенг, КП (2010). «Процессор AES с минимальным набором команд с использованием Гарвардской архитектуры» . 2010 3-я Международная конференция по информатике и информационным технологиям . Том. 9. С. 65–69. дои : 10.1109/ICCSIT.2010.5564522 . ISBN 978-1-4244-5537-9 .
- ^ Венкатесан, Чандран; Султана, М. Табсера; Сумитра, Миннесота; Сурия, М. (2019). «Проектирование 16-битного RISC-процессора гарвардской структуры по 45-нм технологии Cadence» . 2019 5-я Международная конференция по передовым вычислительным и коммуникационным системам (ICACCS) . стр. 173–178. дои : 10.1109/ICACCS.2019.8728479 . ISBN 978-1-5386-9531-9 .
- ^ Поусон, Ричард (30 сентября 2022 г.). «Миф о Гарвардской архитектуре» . IEEE Анналы истории вычислений . 44 (3): 59–69. дои : 10.1109/MAHC.2022.3175612 . S2CID 252018052 .
- ^ «Kalimba DSP: Руководство пользователя» (PDF) . Июль 2006. с. 18 . Проверено 23 сентября 2022 г.
это трёхбанковая архитектура Гарварда.
- ^ « 386 против 030: Переполненный скоростной переулок ». Журнал доктора Добба , январь 1988 г.
- ^ Браун, Джон Форрест (1994). Программирование встраиваемых систем на C и ассемблере . Нью-Йорк: Ван Ностранд Рейнхольд. ISBN 0-442-01817-7 . OCLC 28966593 .
- ^ «Программирование встраиваемых систем: опасности кэша ПК» . user.ece.cmu.edu . Архивировано из оригинала 15 января 2020 года . Проверено 26 мая 2022 г.
- ^ Унгербёк, Г.; Майвальд, Д.; Кезер, HP; Шевиллат, PR; Беро, JP (1985). «Архитектура цифрового сигнального процессора» . Журнал исследований и разработок IBM . 29 (2): 132–139. дои : 10.1147/rd.292.0132 .
- ^ Ху, Юэ-ли; Цао, Цзя-линь; Ран, Фэн; Лян, Чжи-цзянь (2004). «Проектирование высокопроизводительного микроконтроллера» . Материалы шестой конференции IEEE CPMT по проектированию и упаковке микросистем высокой плотности, а также анализу отказов компонентов (HDP '04) . стр. 25–28. дои : 10.1109/HPD.2004.1346667 . ISBN 0-7803-8620-5 .