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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Гарвардская архитектура компьютера
Схема Гарвардской архитектуры компьютера

Гарвардская архитектура — архитектура ЭВМ, отличительными признаками которой являются:

  • хранилище инструкций и хранилище данных представляют собой разные физические устройства;
  • канал инструкций и канал данных также физически разделены.

Архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете.

В 1930-х годах правительство США поручило Гарвардскому и Принстонскому университетам разработать архитектуру ЭВМ для военно-морской артиллерии. В конце 1930-х годов в Гарвардском университете Говардом Эйкеном была разработана архитектура компьютера Марк I, в дальнейшем называемая по имени этого университета. Оригинальная идея была продемонстрирована Эйкеном компании IBM в октябре 1937 года[1]. Однако победила более простая в реализации разработка Принстонского университета (более известная как архитектура фон Неймана, названная так по имени авторитетного учёного-консультанта и разработчика, первым предоставившего отчёт[2] об архитектуре, к которой пришли в ходе плодотворных дискуссий в команде создателей; авторами же идей, заложенных в этой архитектуре, являлись Джон Преспер Экерт и Джон Уильям Мокли).

Гарвардская архитектура использовалась советским учёным А. И. Китовым в ВЦ-1 МО СССР[3].

Классическая гарвардская архитектура

[править | править код]

Типичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий:

Идея, реализованная Эйкеном, заключалась в физическом разделении линий передачи команд и данных. В первом компьютере Эйкена «Марк 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-микропроцессоров, делящейся на два равных либо различных по объёму блока для данных и команд.

Примечания

[править | править код]
  1. Bernard Cohen. Howard Aiken, Portrait of a computer pioneer. — Cambridge, Massachusetts: The MIT Press, 2000. — С. 53. — ISBN 978-0-2625317-9-5.
  2. John von Neumann. First Draft of a Report on the EDVAC // University of Pennsylvania. — 1945. — 30 июнь. Архивировано 14 марта 2013 года.
  3. ВЦ-1 МО СССР, 1958 (недоступная ссылка)