Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете с целью увеличить скорость выполнения вычислительных операций и оптимизировать работу памяти.
Типичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий: выборку двух операндов, выбор инструкции и её выполнение, и, наконец, сохранение результата.
Идея, реализованная Эйкеном, заключалась в физическом разделении линий передачи команд и данных. В первом компьютере Эйкена Марк I, для хранения данных использовалась перфорированная лента, а для работы с инструкциями — электро-механические регистры. Это позволяло одновременно пересылать и обрабатывать команды и данные, благодаря чему значительно повышалось общее быстродействие.
Соответствующая схема реализации доступа к памяти имеет один очевидный недостаток — высокую стоимость. При разделении каналов передачи адреса и данных на кристалле процессора, последний должен иметь в два раза больше выводов.
Способом решения этой проблемы стала идея использовать общую шину данных и шину адреса для всех внешних данных, а внутри процессора использовать шину данных, шину команд и две шины адреса. Такую концепцию стали называть модифицированной Гарвардской архитектурой.
структурная схема гарвардской архитектуры
Часто требуется выбрать три составляющие — два операнда и инструкцию (в алгоритмах цифровой обработки сигналов). Для этого существует кэш-память. В ней может храниться инструкция — обе шины остаются свободными, и появляется возможность передать два операнда одновременно.
Использование кэш-памяти вместе с разделёнными шинами получило название— расширенная Гарвардская архитектура.