Гарвардская архитектура: Разделяй и властвуй
Представь, что ты повар на кухне. У тебя есть книга с рецептами (инструкции, что нужно делать) и холодильник с продуктами (данные, с которыми ты работаешь). Будет очень неудобно и странно хранить бумажную книгу прямо внутри холодильника рядом с колбасой.
В архитектуре компьютеров действует тот же принцип. В так называемой «Гарвардской архитектуре» память для программ (ПЗУ или ROM) и память для данных (ОЗУ или RAM) — это два совершенно разных устройства, которые подключены к процессору по разным шинам.
ПЗУ (Постоянное запоминающее устройство) хранит сам код нашей программы — те самые команды «сложить», «сохранить», «перейти». Процессор только читает оттуда инструкции и никогда их не перезаписывает во время работы. А вот ОЗУ (Оперативное запоминающее устройство) — это черновик. Туда процессор постоянно что-то пишет, стирает и сохраняет промежуточные результаты (координаты игрока, счет в игре, здоровье). Разделение этих памятей позволяет процессору одновременно читать следующую команду и сохранять данные предыдущей, что делает его работу очень быстрой.
Практический пример. В компьютере Ершова (уровень 18) Гарвардская архитектура позволяет одновременно читать инструкцию из ROM и записывать данные в RAM за один такт. Процессор не ждёт: пока дешифратор разбирает текущую команду, счётчик команд уже подтягивает следующую из программной памяти. Альтернатива — Фон-неймановская архитектура, где инструкции и данные делят одну шину. Она проще, но вдвое медленнее: нельзя одновременно читать команду и писать результат.