Što je instrukcijski cjevovod?

Što je instrukcijski cjevovod?

Svaka procesorska instrukcija ima više faza u svom radu. Za dovršenje svake od ovih faza potreban je jedan CPU ciklus. Ove faze su dohvaćanje instrukcija, dekodiranje instrukcija, izvršenje, pristup memoriji i povratni upis. Odnosno oni dobivaju instrukciju koju treba dovršiti, odvajaju operaciju od vrijednosti s kojima se operira, izvršavaju proces, otvaraju registar u koji će biti upisan rezultat i upisuju rezultat u otvoreni registar.

Povijesni procesori po narudžbi

U prvim računalima CPU nije koristio cjevovod instrukcija. U tim CPU-ima, svaka operacija jednog ciklusa morala se dogoditi za svaku instrukciju. To je značilo da je bilo potrebno pet ciklusa takta da se prosječna instrukcija u potpunosti obradi prije nego što se sljedeća mogla pokrenuti. Neke operacije možda neće morati ispisati nikakav rezultat u registar, što znači da se pristup memoriji i faze povratnog pisanja mogu preskočiti.

Što je instrukcijski cjevovod?

U subskalarnom procesoru bez cjevovoda, svaki dio svake instrukcije se izvršava redom.

Međutim, postoji problem koji vreba kada izvodite potpunu instrukciju po redu prije nego što prijeđete na sljedeću instrukciju. Problem je nedostatak predmemorije. CPU pohranjuje podatke koje aktivno obrađuje u registar. Ovome se može pristupiti s kašnjenjem od jednog ciklusa. Problem je što je registar malen jer je ugrađen u jezgru procesora. CPU mora prijeći na veću, ali sporiju L1 predmemoriju ako podaci već nisu učitani. Ako ga nema, mora ponovno ići u veću i sporiju L2 predmemoriju. Sljedeći korak je L3 predmemorija; posljednja opcija je RAM sustava. Svaka od ovih opcija zahtijeva sve više i više CPU ciklusa za provjeru.

Sada, ova dodatna dodana latencija može biti veliki problem u sustavu koji mora dovršiti svaku instrukciju u cijelosti prije pokretanja sljedeće instrukcije. Ono što je bio procesor s 5 ciklusa po instrukciji, odjednom se može zadržati na jednoj instrukciji na desetke ili stotine ciklusa takta. Sve to vrijeme ništa se drugo ne može dogoditi na računalu. Tehnički, to se može donekle ublažiti postojanjem dvije neovisne jezgre. Međutim, ništa ih ne sprječava da rade istu stvar, potencijalno istovremeno. Dakle, prelazak na višejezgreni put to ne rješava.

Klasični RISC cjevovod

RISC je kratica za Reduced Instruction Set Computer . To je stil dizajna procesora koji optimizira performanse olakšavajući dekodiranje svake instrukcije. Ovo je u usporedbi s CISC-om ili Complex Instruction Set Computer, koji dizajnira složenije skupove instrukcija dopuštajući da manje instrukcija bude potrebno za obavljanje istih zadataka.

Klasični RISC dizajn uključuje cjevovod instrukcija. Umjesto pokretanja bilo koje od pet faza instrukcija u bilo kojem danom ciklusu, cjevovod omogućuje izvođenje svih pet faza. Naravno, ne možete pokrenuti svih pet faza jedne instrukcije u ciklusu. Ali možete staviti u red pet uzastopnih instrukcija s pomakom od jedne faze svaka. Na ovaj način, nova instrukcija može biti dovršena svaki ciklus takta. Nudeći potencijalno 5x povećanje performansi za relativno nizak porast složenosti jezgre.

Što je instrukcijski cjevovod?

U skalarnom cjevovodnom procesoru, svaka faza izvršavanja instrukcija može se izvesti jednom po ciklusu takta. To omogućuje maksimalnu propusnost od jedne dovršene instrukcije po ciklusu.

Procesori koji nemaju cjevovod mogu biti samo subskalarni, jer ne mogu izvršiti jednu potpunu instrukciju po ciklusu. S ovim primarnim cjevovodom u pet stupnjeva možete napraviti skalarni CPU koji može izvršiti instrukciju za svaki proces. Stvaranjem još dalekosežnijih cjevovoda, možete napraviti superskalarne procesore koji mogu izvršiti više od jedne instrukcije po taktu. Naravno, još uvijek postoje potencijalni problemi.

Još uvijek sekvencijalno

Ništa od ovoga ne rješava problem čekanja mnogih ciklusa na odgovor kada je potrebno postaviti upit različitim razinama predmemorije i RAM-a. Također predstavlja novi problem. Što ako se jedna instrukcija oslanja na izlaz prethodne instrukcije? Ovi problemi se samostalno rješavaju naprednim dispečerom. Pažljivo planira redoslijed izvršenja tako da nijedna instrukcija koja se oslanja na izlaz drugoga nije preblizu jedna drugoj. Također obrađuje promašaje predmemorije parkiranjem instrukcije i njezinom zamjenom u cjevovodu s drugim instrukcijama koje su spremne za izvođenje i ne zahtijevaju svoj rezultat, nastavljajući instrukciju kada je spremna.

Ova rješenja mogu raditi na procesorima bez cjevovoda, ali su potrebna za superskalarne procesore koji izvode više od jedne instrukcije po taktu. Prediktor grananja također je vrlo koristan jer može pokušati predvidjeti ishod instrukcije s više od jednog potencijalnog ishoda i nastaviti s pretpostavkom da je ispravan osim ako se ne dokaže suprotno.

Zaključak

Cjevovod omogućuje da se sve različite mogućnosti procesora koriste u svakom ciklusu. To čini izvođenjem različitih faza različitih uputa istovremeno. Ovo čak i ne komplicira dizajn CPU-a. Također utire put dopuštanju više od jedne instrukcije za izvođenje jedne faze po ciklusu.


Kako klonirati tvrdi disk

Kako klonirati tvrdi disk

U modernom digitalnom dobu, gdje su podaci dragocjena imovina, kloniranje tvrdog diska u sustavu Windows za mnoge može biti ključan proces. Ovaj sveobuhvatni vodič

Kako popraviti upravljački program WUDFRd koji se nije učitao u sustavu Windows 10?

Kako popraviti upravljački program WUDFRd koji se nije učitao u sustavu Windows 10?

Jeste li suočeni s porukom o pogrešci tijekom pokretanja računala koja kaže da se upravljački program WUDFRd nije uspio učitati na vašem računalu?

Kako popraviti šifru pogreške NVIDIA GeForce Experience 0x0003

Kako popraviti šifru pogreške NVIDIA GeForce Experience 0x0003

Imate li NVIDIA GeForce iskustvo s kodom pogreške 0x0003 na radnoj površini? Ako da, pročitajte blog kako biste saznali kako brzo i jednostavno popraviti ovu pogrešku.

Što je SMPS?

Što je SMPS?

Naučite što je SMPS i značenje različitih ocjena učinkovitosti prije nego što odaberete SMPS za svoje računalo.

Zašto se moj Chromebook ne uključuje

Zašto se moj Chromebook ne uključuje

Pronađite odgovore na pitanje Zašto se moj Chromebook ne uključuje? U ovom korisnom vodiču za korisnike Chromebooka.

Kako Googleu prijaviti phishing prijevare

Kako Googleu prijaviti phishing prijevare

Pomoću ovog vodiča saznajte kako Googleu prijaviti prevaranta kako biste ga spriječili da vara druge.

Roomba staje, zapinje i okreće se – popravi

Roomba staje, zapinje i okreće se – popravi

Riješite problem u kojem vaš Roomba robot usisavač stane, zaglavi se i stalno se okreće.

Kako promijeniti grafičke postavke na Steam Decku

Kako promijeniti grafičke postavke na Steam Decku

Steam Deck nudi robusno i svestrano iskustvo igranja na dohvat ruke. Međutim, kako biste optimizirali svoje igranje i osigurali najbolje moguće

Što je sigurnost temeljena na izolaciji?

Što je sigurnost temeljena na izolaciji?

Namjeravali smo se zadubiti u temu koja postaje sve važnija u svijetu kibernetičke sigurnosti: sigurnost temeljena na izolaciji. Ovaj pristup prema

Kako koristiti Auto Clicker za Chromebook

Kako koristiti Auto Clicker za Chromebook

Danas smo namjeravali istražiti alat koji može automatizirati ponavljajuće zadatke klikanja na vašem Chromebooku: Auto Clicker. Ovaj vam alat može uštedjeti vrijeme i