Тесното място на фон Нойман е естествен резултат от използването на шина за прехвърляне на данни между процесора, паметта, дългосрочното съхранение и периферните устройства. Без значение колко бързо автобусът изпълнява своята задача, винаги е възможно да го задържи, тоест да образува тесно място, което намалява скоростта. С течение на времето скоростите на процесора продължават да се увеличават, докато подобренията на паметта и други устройства се фокусират върху плътността – възможността да се съхранява повече в по-малко пространство. Следователно, тесното място става все по-голям проблем с всяко подобрение, което кара процесора да прекарва много време в неактивен режим.
В рамките на разумното можете да преодолеете някои от проблемите, които заобикалят тесното място на фон Нойман и да доведат до малки, но забележими увеличения на скоростта на приложението. Ето най-често срещаните решения:
- Кеширане: Когато проблемите с достатъчно бързото получаване на данни от паметта с архитектурата на Von Neumann станаха очевидни, доставчиците на хардуер реагираха бързо, като добавиха локализирана памет, която не изисква достъп до шината. Тази памет изглежда външна за процесора, но като част от пакета на процесора. Високоскоростният кеш обаче е скъп, така че размерите на кеша обикновено са малки.
- Кеширане на процесора: За съжаление външните кешове все още не осигуряват достатъчно скорост. Дори използването на най-бързата налична RAM и пълното прекъсване на достъпа до шината не отговаря на нуждите от капацитет за обработка на процесора. Следователно доставчиците започнаха да добавят вътрешна памет — кеш, по-малък от външния, но с още по-бърз достъп, защото е част от процесора.
- Предварително извличане: Проблемът с кешовете е, че те се оказват полезни само когато съдържат правилните данни. За съжаление, попаденията в кеша се оказват ниски в приложения, които използват много данни и изпълняват голямо разнообразие от задачи. Следващата стъпка в ускоряването на работата на процесорите е да отгатнете кои данни ще изисква приложението и да ги заредите в кеша, преди приложението да ги изисква.
- Използване на специална RAM: Можете да бъдете погребани от супа с RAM азбука, защото има повече видове RAM, отколкото повечето хора си представят. Всеки вид RAM има за цел да реши поне част от проблема с тесните места на фон Нойман и те работят - в рамките на ограничения. В повечето случаи подобренията се въртят около идеята за по-бързо получаване на данни от паметта и в шината. Два основни (и много незначителни) фактора влияят на скоростта: скорост на паметта (колко бързо паметта премества данните) и латентност (колко време е необходимо, за да се намери определена част от данни). Прочетете повече за паметта и факторите, които я влияят.
Както при много други области на технологиите, рекламата може да се превърне в проблем. Например, многонишковостта, актът на разбиване на приложение или друг набор от инструкции в дискретни изпълнителни единици, с които процесорът може да обработва една по една, често се рекламира като средство за преодоляване на тесното място на фон Нойман, но всъщност не го прави. нещо повече от добавяне на допълнителни разходи (влошаване на проблема). Многонишковостта е отговор на друг проблем: да направи приложението по-ефективно. Когато приложение добави проблеми с латентността към тесното място на фон Нойман, цялата система се забавя. Многонишковостта гарантира, че процесорът не губи още време в чакане на потребителя или приложението, а вместо това има какво да прави през цялото време. Закъснението на приложението може да възникне с всяка архитектура на процесора, не само с архитектурата на Von Neumann. дори и така,