Разделены ли данные и инструкции на шине данных в модифицированных архитектурах Гарварда? - PullRequest
0 голосов
/ 14 июля 2020

В модифицированной гарвардской архитектуре как данные, так и инструкции (код) хранятся вместе в DRAM и в кэше L2, при этом они являются отдельными на уровне L1. Они также оба передаются из DRAM в кэш через шину данных. Читал, что могут быть отдельные контроллеры памяти для данных / инструкций. Но есть ли разделение линий шины на данные и инструкции?

И если они разделены, каковы компромиссы между разделением линий шины и унифицированными линиями? они реализуются по-другому физически или взаимозаменяемы?

1 Ответ

0 голосов
/ 15 июля 2020

Внешние автобусные линии, шт. Это был бы полный Гарвард, а не только разделение L1.

«Модифицированный Гарвард» - это просто скоростной хак для архитектуры фон Неймана, с единственным видимым эффектом, что вам нужно запустить синхронизацию кеша c инструкция для надежной работы самомодифицируемого кода / JIT code-gen.

(Если у вас нет ISA, такого как x86, который требует, чтобы L1i + конвейер был согласован с кешами данных, в этом случае хранилища имеют на sn oop адреса кода в полете ...)

См .:

Есть несколько микросхем с отдельными шинами для инструкций и данных.

Вы обычно обнаруживаете настоящую гарвардскую настройку в микроконтроллерах без кеша, где инструкции берутся из ПЗУ (или NOR fla sh или что-то в этом роде) , в то время как загрузка / сохранение данных использует SRAM или DRAM.

Некоторые, например AVR, имеют инструкцию загрузки программной памяти ( LPM ), поэтому вы можете иметь постоянные данные только для чтения ( как таблицы поиска) в EEROM / fla sh. К разным типам памяти можно подключить разные внешние шины. Если поддерживается, SPM (хранилище программной памяти) может даже записывать в эту память для сохранения во время циклов питания, хотя ограниченная стойкость к записи такой памяти означает, что вы не хотите делать это как часть нормальной работы. Наличие инструкции LPM означает, что это немного менее чистый Гарвард, но, очевидно, он доступен не на всех устройствах AVR. Но если он у вас есть, это больше похоже на отдельные шины для fla sh и RAM, с возможностью загрузки / хранения данных в любую из них. Но вы можете выполнять только из программной памяти, так что это не полный фон Неймана, если SPM также не поддерживается.

Два отдельных адресных пространства также означают, что вы можете адресовать, например, 64 КБ кода и 64 КБ данных вместо 64 Кбайт с 16-битными адресами.

...