El coll d'ampolla de Von Neumann és un resultat natural de l'ús d'un bus per transferir dades entre el processador, la memòria, l'emmagatzematge a llarg termini i els dispositius perifèrics. Per molt ràpid que l'autobús faci la seva tasca, sempre és possible aclaparar-lo, és a dir, formar un coll d'ampolla que redueixi la velocitat. Amb el temps, les velocitats del processador continuen augmentant, mentre que la memòria i altres millores del dispositiu se centren en la densitat: la capacitat d'emmagatzemar més en menys espai. En conseqüència, el coll d'ampolla esdevé més un problema amb cada millora, la qual cosa fa que el processador passi molt de temps inactiu.
Amb raó, podeu superar alguns dels problemes que envolten el coll d'ampolla de Von Neumann i produir petits, però notables, augments de la velocitat de l'aplicació. Aquestes són les solucions més habituals:
- Emmagatzematge en memòria cau: quan es van fer evidents problemes per obtenir dades de la memòria prou ràpid amb l'arquitectura Von Neumann, els venedors de maquinari van respondre ràpidament afegint memòria localitzada que no requeria accés a bus. Aquesta memòria apareix externa al processador, però com a part del paquet del processador. Tanmateix, la memòria cau d'alta velocitat és cara, de manera que les mides de la memòria cau solen ser petites.
- Memòria cau del processador: malauradament, les memòries cau externes encara no ofereixen prou velocitat. Fins i tot utilitzar la memòria RAM més ràpida disponible i tallar completament l'accés al bus no compleix les necessitats de capacitat de processament del processador. En conseqüència, els venedors van començar a afegir memòria interna: una memòria cau més petita que la memòria cau externa, però amb un accés encara més ràpid perquè forma part del processador.
- Obtenció prèvia: el problema de les memòria cau és que només resulten útils quan contenen les dades correctes. Malauradament, les visites de memòria cau són baixes en aplicacions que utilitzen moltes dades i realitzen una gran varietat de tasques. El següent pas per fer que els processadors funcionin més ràpid és endevinar quines dades necessitarà l'aplicació i carregar-les a la memòria cau abans que l'aplicació ho requereixi.
- Ús de RAM especial: pots ser enterrat per la sopa d'alfabet RAM perquè hi ha més tipus de RAM del que la majoria de la gent s'imagina. Cada tipus de memòria RAM pretén resoldre almenys una part del problema del coll d'ampolla de Von Neumann, i funcionen, dins dels límits. En la majoria dels casos, les millores giren al voltant de la idea d'aconseguir dades de la memòria i cap a l'autobús més ràpidament. Dos factors principals (i molts menors) afecten la velocitat: la velocitat de la memòria (la rapidesa amb què la memòria mou les dades) i la latència (quant de temps triga a localitzar una determinada peça de dades). Llegeix més sobre la memòria i els factors que l'afecten.
Com passa amb moltes altres àrees de la tecnologia, el bombo pot esdevenir un problema. Per exemple, el multithreading, l'acte de trencar una aplicació o un altre conjunt d'instruccions en unitats d'execució discretes que el processador pot gestionar d'una en una, sovint es promociona com un mitjà per superar el coll d'ampolla de Von Neumann, però en realitat no ho fa. res més que afegir despeses generals (empitjorant el problema). El multithreading és una resposta a un altre problema: fer que l'aplicació sigui més eficient. Quan una aplicació afegeix problemes de latència al coll d'ampolla de Von Neumann, tot el sistema s'alenteix. El multithreading garanteix que el processador no perdi encara més temps esperant l'usuari o l'aplicació, sinó que té alguna cosa a fer tot el temps. La latència de l'aplicació es pot produir amb qualsevol arquitectura de processador, no només amb l'arquitectura Von Neumann. Així i tot,