Гарвардская школа бизнеса
- 1 year ago
- 0
- 0
Гарвардская архитектура — архитектура ЭВМ , отличительными признаками которой являются:
Архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете .
В 1930-х годах правительство США поручило Гарвардскому и Принстонскому университетам разработать архитектуру ЭВМ для военно-морской артиллерии. В конце 1930-х годов в Гарвардском университете Говардом Эйкеном была разработана архитектура компьютера Марк I , в дальнейшем называемая по имени этого университета. Оригинальная идея была продемонстрирована Эйкеном компании IBM в октябре 1937 года . Однако победила более простая в реализации разработка Принстонского университета (более известная как архитектура фон Неймана , названная так по имени авторитетного учёного-консультанта и разработчика, первым предоставившего отчёт об архитектуре, к которой пришли в ходе плодотворных дискуссий в команде создателей; авторами же идей, заложенных в этой архитектуре, являлись Джон Преспер Экерт и Джон Уильям Мокли ).
Гарвардская архитектура использовалась советским учёным А. И. Китовым в ВЦ-1 МО СССР .
Типичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий:
Идея, реализованная Эйкеном , заключалась в физическом разделении линий передачи команд и данных . В первом компьютере Эйкена « Марк I » для хранения инструкций использовалась перфорированная лента , а для работы с данными — электромеханические регистры . Это позволяло одновременно пересылать и обрабатывать команды и данные, благодаря чему значительно повышалось общее быстродействие компьютера.
В гарвардской архитектуре характеристики устройств памяти для инструкций и памяти для данных не обязательно должны быть одинаковыми. В частности, ширина слова, тактирование, технология реализации и структура адресов памяти могут различаться. В некоторых системах инструкции могут храниться в памяти только для чтения, в то время как для сохранения данных обычно требуется память с возможностью чтения и записи. В некоторых системах требуется значительно больше памяти для инструкций, чем памяти для данных, поскольку данные обычно могут подгружаться с внешней или более медленной памяти. Такая потребность увеличивает битность (ширину) шины адреса памяти инструкций по сравнению с шиной адреса памяти данных.
В архитектуре фон Неймана процессор в каждый момент времени может либо читать инструкцию, либо читать/записывать единицу данных из/в памяти. Оба действия одновременно происходить не могут, поскольку инструкции и данные используют один и тот же поток ( шину ).
В компьютере с использованием гарвардской архитектуры процессор может считывать очередную команду и оперировать памятью данных одновременно и без использования кэш-памяти. Таким образом, компьютер с гарвардской архитектурой при определенной сложности схемы быстрее, чем компьютер с архитектурой фон Неймана, поскольку потоки команд и данных расположены на раздельных физически не связанных между собой аппаратных каналах.
Исходя из физического разделения шин команд и данных, разрядности этих шин могут различаться и физически не могут пересекаться.
Соответствующая схема реализации доступа к памяти имеет один очевидный недостаток — высокую стоимость. При разделении каналов передачи команд и данных на кристалле процессора последний должен иметь почти вдвое больше интерфейсных , так как шина адреса и шина данных составляют основную часть выводов микропроцессора. Способом разрешения этой проблемы стала идея использовать общие шину данных и шину адреса для всех внешних данных, а внутри процессора использовать шину данных, шину команд и две шины адреса. Такую концепцию стали называть модифицированной гарвардской архитектурой .
Такая схемотехника применяется в современных сигнальных процессорах. Ещё дальше по пути уменьшения стоимости пошли при создании однокристальных микроЭВМ — микроконтроллеров . В них одна шина команд и данных применяется и внутри кристалла.
Разделение шин в модифицированной гарвардской структуре осуществляется при помощи раздельных управляющих сигналов: чтения, записи или выбора области памяти.
Часто требуется выбрать три составляющие: два операнда и инструкцию (в алгоритмах цифровой обработки сигналов это наиболее распространенная задача в БПФ -, КИХ - и БИХ -фильтрах). Для этого существует кэш-память . В ней может храниться инструкция — следовательно, обе шины остаются свободными и появляется возможность передать два операнда одновременно. Использование кэш-памяти вместе с разделёнными шинами получило название «Super Harvard Architecture» («SHARC») — расширенная гарвардская архитектура.
Примером могут служить процессоры « Analog Devices »: ADSP-21xx — модифицированная гарвардская архитектура, ADSP-21xxx (SHARC) — расширенная гарвардская архитектура.
Существуют гибридные архитектуры, сочетающие достоинства как гарвардской, так и фон-неймановской архитектур. Современные CISC -процессоры обладают раздельной кэш-памятью 1-го уровня для команд и данных, что позволяет им за один рабочий такт получать одновременно и команду, и данные для её выполнения. То есть процессорное ядро аппаратно гарвардское, но программно оно фон-неймановское, что упрощает написание программ. Обычно в данных процессорах одна шина используется и для передачи команд, и для передачи данных, что схемотехнически упрощает систему. Современные варианты таких процессоров могут иногда содержать встроенные контроллеры сразу нескольких разнотипных шин для работы с различными типами памяти — например, DDR RAM и Flash . Тем не менее, и в этом случае шины, как правило, используются и для передачи команд, и для передачи данных без разделения, что делает данные процессоры ещё более близкими к фон-неймановской архитектуре при сохранении достоинств гарвардской архитектуры.
Первым компьютером, в котором была использована идея гарвардской архитектуры, был Марк I.
Гарвардская архитектура используется в ПЛК и микроконтроллерах, таких, как Microchip PIC , Atmel AVR , Intel 4004 , Intel 8051 , процессорах серии TMC320 фирмы Texas Instruments , DSP фирм Motorola и Analog Devices, а также в кэш-памяти первого уровня x86 -микропроцессоров, делящейся на два равных либо различных по объёму блока для данных и команд.