Von Neumann sastrēgums ir dabisks rezultāts, izmantojot kopni, lai pārsūtītu datus starp procesoru, atmiņu, ilgtermiņa krātuvi un perifērijas ierīcēm. Neatkarīgi no tā, cik ātri autobuss pilda savu uzdevumu, vienmēr ir iespējams to pārvarēt – tas ir, izveidot sašaurinājumu, kas samazina ātrumu. Laika gaitā procesora ātrums turpina palielināties, kamēr atmiņa un citi ierīces uzlabojumi ir vērsti uz blīvumu — spēju uzglabāt vairāk mazākā vietā. Līdz ar to sašaurinājums kļūst arvien lielāka problēma ar katru uzlabojumu, liekot procesoram daudz laika pavadīt dīkstāvē.
Saprāta robežās varat pārvarēt dažas problēmas, kas apņem Von Neumann sastrēgumu, un radīt nelielu, bet ievērojamu lietošanas ātruma pieaugumu. Šeit ir visizplatītākie risinājumi:
- Kešatmiņa: kad kļuva acīmredzamas problēmas ar datu iegūšanu no atmiņas pietiekami ātri, izmantojot Von Neumann Architecture, aparatūras pārdevēji ātri reaģēja, pievienojot lokalizētu atmiņu, kurai nebija nepieciešama piekļuve kopnei. Šī atmiņa šķiet ārpus procesora, bet kā daļa no procesora pakotnes. Tomēr ātrgaitas kešatmiņa ir dārga, tāpēc kešatmiņas izmēri mēdz būt mazi.
- Procesora kešatmiņa: diemžēl ārējās kešatmiņas joprojām nenodrošina pietiekamu ātrumu. Pat izmantojot ātrāko pieejamo RAM un pilnībā pārtraucot piekļuvi kopnei, netiek nodrošināta procesora apstrādes jaudas nepieciešamība. Līdz ar to pārdevēji sāka pievienot iekšējo atmiņu — kešatmiņu, kas ir mazāka par ārējo kešatmiņu, bet ar vēl ātrāku piekļuvi, jo tā ir daļa no procesora.
- Iepriekšēja ielāde: kešatmiņu problēma ir tā, ka tās ir noderīgas tikai tad, ja tajās ir pareizi dati. Diemžēl kešatmiņas trāpījumu ir maz lietojumprogrammās, kas izmanto daudz datu un veic dažādus uzdevumus. Nākamais solis, lai procesori darbotos ātrāk, ir uzminēt, kuri dati lietojumprogrammai būs nepieciešami, un ielādēt tos kešatmiņā, pirms lietojumprogramma to pieprasa.
- Speciālās RAM izmantošana: RAM alfabēta zupa var apglabāt, jo ir vairāk RAM veidu, nekā vairums cilvēku iedomājas. Katrs RAM veids ir paredzēts, lai atrisinātu vismaz daļu no Fon Neumann sastrēgumu problēmas, un tie darbojas — robežās. Vairumā gadījumu uzlabojumi ir saistīti ar ideju ātrāk iegūt datus no atmiņas un nokļūt kopnē. Ātrumu ietekmē divi galvenie (un daudzi nelieli) faktori: atmiņas ātrums (cik ātri atmiņa pārvieto datus) un latentums (cik ilgs laiks nepieciešams, lai atrastu konkrētu datu daļu). Lasiet vairāk par atmiņu un faktoriem, kas to ietekmē.
Tāpat kā daudzās citās tehnoloģiju jomās, ažiotāža var kļūt par problēmu. Piemēram, daudzpavedienu izveide, lietojumprogrammas vai citu instrukciju kopas sadalīšana diskrētās izpildes vienībās, kuras procesors var apstrādāt pa vienam, bieži tiek reklamēta kā līdzeklis fon Neimaņa sastrēgumu pārvarēšanai, taču tas faktiski nedara. jebkas vairāk, kā tikai pievienot pieskaitāmās izmaksas (problēmu pasliktinot). Daudzpavedienu izmantošana ir atbilde uz citu problēmu: lietojumprogrammas padarīšana efektīvāka. Kad lietojumprogramma pievieno latentuma problēmas fon Neimaņa sašaurinājumam, visa sistēma palēninās. Multithreading nodrošina, ka procesors netērē vēl vairāk laika, gaidot lietotāju vai lietojumprogrammu, bet gan visu laiku kaut ko darīt. Lietojumprogrammas latentums var rasties ar jebkuru procesora arhitektūru, ne tikai fon Neimaņa arhitektūru. Pat ja,