Von Neumanni kitsaskoht on loomulik tulemus siini kasutamisel andmete edastamiseks protsessori, mälu, pikaajalise salvestusruumi ja välisseadmete vahel. Olenemata sellest, kui kiiresti buss oma ülesannet täidab, on selle ületamine – ehk kiirust vähendava kitsaskoha moodustamine – alati võimalik. Aja jooksul kasvab protsessori kiirus jätkuvalt, samal ajal kui mälu ja muud seadme täiustused keskenduvad tihedusele – võimalusele salvestada rohkem vähem ruumi. Järelikult muutub kitsaskoht iga täiustusega suuremaks probleemiks, mistõttu protsessor veedab palju jõudeolekut.
Mõistuse piires saate ületada mõned probleemid, mis ümbritsevad Von Neumanni kitsaskohta ja tekitada väikese, kuid märgatava rakenduse kiiruse tõusu. Siin on kõige levinumad lahendused:
- Vahemällu salvestamine: kui ilmnesid probleemid Von Neumann Architecture'iga piisavalt kiiresti andmete hankimisel mälust, reageerisid riistvaramüüjad kiiresti, lisades lokaliseeritud mälu, mis ei vaja siinijuurdepääsu. See mälu näib olevat protsessoriväline, kuid osana protsessoripaketist. Kiire vahemälu on aga kallis, seetõttu kipuvad vahemälu suurused olema väikesed.
- Protsessori vahemällu salvestamine: kahjuks ei paku välised vahemälud ikka veel piisavalt kiirust. Isegi kiireima saadaoleva RAM-i kasutamine ja siinile juurdepääsu täielik katkestamine ei vasta protsessori töötlemisvõimsuse vajadustele. Sellest tulenevalt hakkasid müüjad lisama sisemälu – vahemälu, mis on väiksem kui välismälu, kuid veelgi kiirema juurdepääsuga, kuna see on osa protsessorist.
- Eellaadimine: vahemälu probleem seisneb selles, et need osutuvad kasulikuks ainult siis, kui need sisaldavad õigeid andmeid. Kahjuks osutuvad vahemälu tabamused väheseks rakendustes, mis kasutavad palju andmeid ja täidavad mitmesuguseid ülesandeid. Järgmine samm protsessorite kiiremaks tööle panemisel on arvata, milliseid andmeid rakendus järgmisena vajab, ja laadida need vahemällu enne, kui rakendus seda nõuab.
- Spetsiaalse RAM-i kasutamine: RAM-i tähestikusupp võib teid maha matta, kuna RAM-i on rohkem kui enamik inimesi ette kujutab. Igat tüüpi RAM-i eesmärk on lahendada vähemalt osa Von Neumanni kitsaskoha probleemist ja need toimivad - piirides. Enamikul juhtudel keerlevad täiustused idee ümber saada andmed mälust kiiremini siini. Kiirust mõjutavad kaks peamist (ja palju väiksemat) tegurit: mälu kiirus (kui kiiresti mälu andmeid liigutab) ja latentsus (kui kaua kulub konkreetse andmetüki leidmiseks). Loe rohkem mälu ja seda mõjutavate tegurite kohta.
Nagu paljudes teistes tehnoloogiavaldkondades, võib hüpeest saada probleem. Näiteks mitme lõimega töötlemist, rakenduse või muu juhiste komplekti jagamist diskreetseteks täitmisüksusteks, millega protsessor saab korraga hakkama saada, reklaamitakse sageli kui vahendit Von Neumanni kitsaskoha ületamiseks, kuid tegelikult see ei aita. midagi enamat kui üldkulude lisamine (mis teeb probleemi hullemaks). Multithreading on vastus teisele probleemile: rakenduse tõhusamaks muutmine. Kui rakendus lisab Von Neumanni kitsaskohale latentsusprobleemid, aeglustub kogu süsteem. Multithreading tagab, et protsessor ei raiska veel rohkem aega kasutaja või rakenduse ootamisele, vaid tal on kogu aeg midagi teha. Rakenduse latentsusaeg võib esineda mis tahes protsessori arhitektuuriga, mitte ainult Von Neumanni arhitektuuriga. Isegi nii,