Von Neumann kliūtis yra natūralus rezultatas naudojant magistralę duomenims perduoti tarp procesoriaus, atminties, ilgalaikės saugyklos ir išorinių įrenginių. Kad ir kaip greitai autobusas atliktų savo užduotį, jį įveikti – tai yra, suformuoti greitį mažinančią kliūtį – visada įmanoma. Laikui bėgant, procesoriaus sparta ir toliau didėja, o atminties ir kitų įrenginių patobulinimų metu dėmesys sutelkiamas į tankį – galimybę išsaugoti daugiau mažiau vietos. Todėl dėl kiekvieno tobulinimo kliūtis tampa vis didesne problema, todėl procesorius daug laiko praleidžia neaktyvus.
Proto ribose galite įveikti kai kurias problemas, susijusias su Von Neumann kliūtimi, ir sukelti nedidelį, bet pastebimą taikymo greičio padidėjimą. Čia pateikiami dažniausiai naudojami sprendimai:
- Talpykla: Kai išryškėjo problemų, susijusių su duomenų gavimu iš atminties pakankamai greitai naudojant Von Neumann architektūrą, aparatūros pardavėjai greitai sureagavo pridėdami lokalizuotos atminties, kuriai nereikėjo prieigos prie magistralės. Ši atmintis atrodo ne procesoriaus, bet kaip procesoriaus paketo dalis. Tačiau didelės spartos talpykla yra brangi, todėl talpyklos dydžiai paprastai būna maži.
- Procesoriaus talpyklos kaupimas: Deja, išorinės talpyklos vis tiek neužtikrina pakankamai greičio. Net naudojant greičiausią turimą RAM ir visiškai nutraukus prieigą prie magistralės, procesoriaus apdorojimo pajėgumai neatitinka. Todėl pardavėjai pradėjo pridėti vidinę atmintį – talpyklą, mažesnę nei išorinė, bet su dar greitesne prieiga, nes ji yra procesoriaus dalis.
- Išankstinis gavimas: talpyklų problema yra ta, kad jos naudingos tik tada, kai jose yra teisingi duomenys. Deja, programose, kurios naudoja daug duomenų ir atlieka daug įvairių užduočių, talpyklos įvykių yra mažai. Kitas veiksmas, kad procesoriai veiktų greičiau, yra atspėti, kurių duomenų programai reikės toliau, ir įkelti juos į talpyklą prieš tai, kai programa to reikalauja.
- Specialios RAM naudojimas: RAM abėcėlės sriuba gali būti palaidota, nes yra daugiau RAM rūšių, nei dauguma žmonių įsivaizduoja. Kiekviena RAM rūšis siekia išspręsti bent dalį Von Neumann kliūties problemos, ir jos veikia – neviršijant ribų. Daugeliu atvejų patobulinimai yra susiję su idėja greičiau gauti duomenis iš atminties ir į magistralę. Du pagrindiniai (ir daugelis nedidelių) faktorių turi įtakos greičiui: atminties greitis (kaip greitai atmintis perkelia duomenis) ir delsa (kiek laiko užtrunka, norint rasti tam tikrą duomenų dalį). Skaitykite daugiau apie atmintį ir jai įtakos turinčius veiksnius.
Kaip ir daugelyje kitų technologijų sričių, ažiotažas gali tapti problema. Pavyzdžiui, kelių gijų kūrimas, programos ar kito instrukcijų rinkinio suskaidymas į atskirus vykdymo vienetus, kuriuos procesorius gali apdoroti po vieną, dažnai reklamuojamas kaip priemonė, padedanti įveikti von Neumanno kliūtį, bet iš tikrųjų to nedaro. nieko daugiau, nei pridėti pridėtinių išlaidų (problema dar labiau pablogėja). Kelių gijų naudojimas yra atsakymas į kitą problemą: programos veiksmingumą. Kai programa prideda delsos problemų prie Von Neumann kliūties, visa sistema sulėtėja. Multithreading užtikrina, kad procesorius nešvaistytų dar daugiau laiko laukdamas vartotojo ar programos, o nuolat turės ką veikti. Programos delsa gali atsirasti naudojant bet kokią procesoriaus architektūrą, ne tik Von Neumann architektūrą. Net ir taip,