Jump to content

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

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

Гарвардская архитектура — это компьютерная архитектура с отдельными хранилищами и сигнальными путями для инструкций и данных . Ее часто противопоставляют архитектуре фон Неймана , где программные инструкции и данные используют одну и ту же память и пути. Эта архитектура часто используется в процессах обработки данных в реальном времени или в приложениях с низким энергопотреблением. [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).

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

Примечания [ править ]

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

Ссылки [ править ]

  1. ^ Конг, Дж. Х.; Анг, LM; Сенг, КП (2010). «Процессор AES с минимальным набором команд с использованием Гарвардской архитектуры» . 2010 3-я Международная конференция по информатике и информационным технологиям . Том. 9. С. 65–69. дои : 10.1109/ICCSIT.2010.5564522 . ISBN  978-1-4244-5537-9 .
  2. ^ Венкатесан, Чандран; Султана, М. Табсера; Сумитра, Миннесота; Сурия, М. (2019). «Проектирование 16-битного RISC-процессора гарвардской структуры по 45-нм технологии Cadence» . 2019 5-я Международная конференция по передовым вычислительным и коммуникационным системам (ICACCS) . стр. 173–178. дои : 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 . OCLC   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 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0e6a3437d34b53edd4091872df3fdeb1__1717541340
URL1:https://arc.ask3.ru/arc/aa/0e/b1/0e6a3437d34b53edd4091872df3fdeb1.html
Заголовок, (Title) документа по адресу, URL1:
Harvard architecture - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)