Ознакомился бегло с сабжем и принципами Гарвардской архитектуры. Что могу сказать. Опять море воды и 0 конструктива.
Основной принцип Фон Неймановской архитектуры: совместное хранение данных и программ. Остановимся на этом подробней.
Никакой разницы между программой и данными нет. Есть куски кода, и только исполнитель решает какой кусок кода ему считать программой, а какой данными. В реале мы имеем куски сваленные в кучу. Тогда о каком «совместном хранении» вообще может идти речь? Совместное хранение кусков кода с кусками кода?
Несколько слов о пресловутом узком месте. В чем, мля, узкое место? В совместном хранение кода и данных, разницы между которыми никакой нет? Очевидно, что проблема в том, что шина только одна, а не 2.
Нам приходит тут на помощь Гарвардская архитектура, она решает «глобальную проблему» - шин теперь не одна, а целых 2. Но кэп какбэ намекает:
Ваше узкое горлышко - это то, что у вас только 2 шины а не 3. Возьмем программу А которая берет 2 аргумента B и С. Как мы получим одновременно В и С если шины у нас только 2? Определенно надо 3 шины. А где узкое место архитектуры с 3-мя? Догадайтесь с 3 раз.
И при чем же тут код и данные? Их совместное/раздельное хранение?