Von Neumannovo usko grlo prirodni je rezultat korištenja sabirnice za prijenos podataka između procesora, memorije, dugotrajne pohrane i perifernih uređaja. Bez obzira koliko brzo autobus obavlja svoju zadaću, uvijek je moguće nadvladati ga – to jest, stvoriti usko grlo koje smanjuje brzinu. S vremenom se brzine procesora i dalje povećavaju, dok se poboljšanja memorije i drugih uređaja usredotočuju na gustoću – sposobnost pohranjivanja više na manje prostora. Posljedično, usko grlo postaje sve veći problem sa svakim poboljšanjem, zbog čega procesor provodi puno vremena u mirovanju.
U razumnom roku, možete prevladati neke od problema koji okružuju Von Neumannovo usko grlo i proizvesti mala, ali primjetna povećanja brzine primjene. Evo najčešćih rješenja:
- Predmemoriranje: Kada su problemi s dovoljno brzim dobivanjem podataka iz memorije s Von Neumannovom arhitekturom postali evidentni, dobavljači hardvera brzo su odgovorili dodavanjem lokalizirane memorije koja nije zahtijevala pristup sabirnici. Ova memorija se čini izvana procesoru, ali kao dio procesorskog paketa. Međutim, brza predmemorija je skupa, pa su veličine predmemorije obično male.
- Predmemorija procesora: Nažalost, vanjske predmemorije još uvijek ne pružaju dovoljnu brzinu. Čak i korištenje najbrže dostupne RAM-a i potpuno isključenje pristupa sabirnici ne zadovoljava potrebe procesora za kapacitetom obrade. Posljedično, dobavljači su počeli dodavati internu memoriju — predmemoriju manju od vanjske predmemorije, ali s još bržim pristupom jer je dio procesora.
- Unaprijed dohvaćanje: Problem s predmemorijama je što se pokažu korisnima samo kada sadrže točne podatke. Nažalost, broj pogodaka u predmemoriji je nizak u aplikacijama koje koriste puno podataka i obavljaju širok raspon zadataka. Sljedeći korak u ubrzavanju rada procesora je pogoditi koje će podatke aplikacija sljedeće trebati i učitati ih u predmemoriju prije nego što aplikacija to zahtijeva.
- Korištenje specijalnog RAM-a: Možete se pokopati juhom od RAM abecede jer postoji više vrsta RAM-a nego što većina ljudi zamišlja. Svaka vrsta RAM-a nastoji riješiti barem dio Von Neumannovog problema uskog grla, i oni rade - unutar granica. U većini slučajeva, poboljšanja se vrte oko ideje bržeg dobivanja podataka iz memorije i na sabirnicu. Dva glavna (i mnogo manjih) čimbenika utječu na brzinu: brzina memorije (koliko brzo memorija premješta podatke) i latencija (koliko je vremena potrebno da se locira određeni dio podataka). Pročitajte više o pamćenju i čimbenicima koji na njega utječu.
Kao i u mnogim drugim područjima tehnologije, hype može postati problem. Na primjer, multithreading, čin razbijanja aplikacije ili drugog skupa instrukcija u diskretne izvršne jedinice kojima procesor može rukovati jednu po jednu, često se promiče kao sredstvo za prevladavanje Von Neumannova uskog grla, ali to zapravo ne čini ništa više od dodavanja dodatnih troškova (što pogoršava problem). Multithreading je odgovor na još jedan problem: učiniti aplikaciju učinkovitijom. Kada aplikacija doda probleme s kašnjenjem na Von Neumannovo usko grlo, cijeli se sustav usporava. Multithreading osigurava da procesor ne gubi još više vremena čekajući korisnika ili aplikaciju, nego umjesto toga stalno ima nešto za raditi. Latencija aplikacije može se pojaviti s bilo kojom arhitekturom procesora, a ne samo s Von Neumannovom arhitekturom. čak i tako,