Kaj je izvedba po naročilu?

Računalniki so zapleteni stroji, pri katerih ni nobenega dela bolj zapletenega kot CPE. Na ravni osnovnega pregleda se zdi, da bi moral biti CPE relativno preprost. Sprejme niz ukazov, jih obdela in nato izda podatke. To pa je malo podobno dejanskemu delovanju sodobnih procesorjev.

Subskalarno v superskalarno

Zgodnji procesorji so bili točno takšni, kot bi pričakovali. Navodila so vzeli posamično, v vrstnem redu, kot so jih dobili, jih obdelali do konca in nato prešli na naslednje navodilo. CPE te vrste so bili subskalarni in so lahko dokončali manj kot en ukaz na takt. Oblikovalci CPU so ugotovili, da obstaja veliko različnih stopenj dokončanja navodil. Vsaka od teh stopenj je zahtevala drugačno strojno opremo. To je pomenilo, da so nekateri deli strojne opreme pri izvajanju enega samega ukaza skozi celotno zaporedje naenkrat mirovali. V katerem koli procesorju je nedejavna strojna oprema neuporabna strojna oprema.

Da bi izkoristili to nedejavno strojno opremo, so bili modeli CPE posodobljeni za uporabo cevovodnega pristopa. To je dodatno ločilo strojno opremo za vsako stopnjo, vendar je omogočilo, da se vse uporabljajo hkrati z nizom navodil. Čeprav je še vedno trajalo nekaj ciklov, da je vsako navodilo šlo skozi cevovod, je bila skupna prepustnost eno navodilo na cikel. S tem so CPE postali skalarni.

Da bi lahko naredili več, je bilo treba procesorje narediti superskalarne. Da bi to dosegli, je bilo implementiranih več vzporednih cevovodov.

Ohranjanje cevovodov, napolnjenih s podatki

Glavna težava pri delovanju računalnikov je običajno zakasnitev pomnilnika. Številna navodila delujejo na podlagi podatkov, zato morajo biti ti podatki na voljo, da se navodilo izvede. Vprašanje je, kaj storite, če morate počakati na te podatke, ker niso takoj na voljo? Tradicionalno je bil odgovor le ustaviti in počakati, da bo na voljo. To pusti celoten cevovod prazen, potencialno za stotine ciklov procesorja. Stvari postanejo še hujše, ko morata dve navodili v vzporednih cevovodih čakati na pomnilnik, saj bo prva zadržala celo zahtevo po podatkih druge. Čeprav lahko predpomnilnik procesorja pomaga odpraviti to težavo, je še vedno ne more odpraviti. Za rešitev je bila potrebna nova paradigma. Ta sprememba paradigme je bila Out Of Order Execution ali OOO.

Prva stopnja cevovoda je dekodiranje navodil. To pomeni ugotoviti, kaj je treba narediti, in preveriti, ali so podatki, potrebni za operacijo, na voljo. V CPU OOO se dekodirana navodila dodajo v čakalno vrsto. Odstranjeni so iz čakalne vrste in dejansko obdelani, ko so na voljo podatki, ki jih potrebujejo. Bistveno je, da ni pomembno, v kakšnem vrstnem redu so bila navodila dodana v čakalno vrsto. Če zgodnje navodilo čaka na podatke, lahko novejše navodilo preskoči naprej, če je pripravljeno za uporabo. Procesorji OOO lahko prerazporedijo navodila, ki naj bi jih obdelali, glede na čakalno vrsto prihajajočih navodil in glede na to, katera od teh so pripravljena za izvedbo.

Kritične odvisnosti

Ta postopek predvideva dve stvari. Najprej, da je mogoče zanesljivo identificirati in obravnavati prave odvisnosti. Drugič, da lahko zanesljivo obravnavate in prepoznate lažne odvisnosti. Kakšna je razlika? No, prava odvisnost je odvisnost, ki je v sistemu OOO sploh ni mogoče ublažiti. Najlažji primer je branje po pisanju. Če imate eno navodilo, ki naj bi zapisalo nekaj podatkov, in drugo, ki naj bi te podatke nato prebralo, teh navodil ne morete preurediti. Izpolniti jih je treba v vrstnem redu, v katerem so bili predstavljeni, sicer boste dobili nesmiselne podatke.

Lažna odvisnost je tista, ki jo je mogoče skriti z drugim premetenim trikom. Vzemimo primer pisanje-za-branjem. Na prvi pogled se vam morda zdi, da podatkov ne morete prepisati, preden jih ne preberete. Stvari pa niso tako preproste. Kaj pa, če imate drugo mesto, kamor lahko zapišete nove podatke, nato pa lahko preprosto zamenjate nove in stare podatke, ko so stari podatki prebrani? To je postopek preimenovanja registra in je ključnega pomena za obdelavo OOO.

Običajno nabor navodil definira določeno število arhitekturnih registrov, ki se uporabljajo v sistemu. Dobesedno ne moreš nagovarjati drugih. Kaj pa, če naredite registre prekomerne ponudbe? Večinoma jih lahko le skrijete, uporabite za shranjevanje podatkov, ki še ne bi smeli biti obdelani, nato pa preprosto zamenjate oznake skritih in arhitekturnih registrov, ko bo časovnica spet pravilna. V vsakem trenutku obstaja natančna prava količina arhitekturnih registrov, le ni nujno, da so vedno na istem mestu. Analogija iz resničnega sveta bi bila vroča miza.

Zaključek

Izvajanje brez vrstnega reda je paradigma obdelave, kjer lahko CPE dinamično preureja navodila v času izvajanja. To se izvaja na podlagi prvih izdanih navodil, ki imajo na voljo podatke. To pomeni, da so navodila, ki se nalagajo v cevovod, vedno pripravljena za izvedbo in ni zamud med čakanjem na podatke. Seveda je treba imeti dovolj dolgo čakalno vrsto, da se ne napolni z navodili, ki čakajo na podatke, vendar je to izziv implementacije. Izvajanje OOO se zanaša na preimenovanje registra, da skrije lažne odvisnosti. Tudi če se ta navodila dejansko izvajajo nepravilno, se registri preimenujejo tako, da to dejstvo skrijejo pred preostalim delom računalnika.


Leave a Comment

Kako povezati prenosni računalnik Windows 11 s projektorjem/TV

Kako povezati prenosni računalnik Windows 11 s projektorjem/TV

Preberite ta članek, da se naučite preprostega postopka povezovanja prenosnega računalnika s projektorjem ali TV na operacijskih sistemih Windows 11 in Windows 10.

Kako najti IP naslov tiskalnika

Kako najti IP naslov tiskalnika

Imate težave pri iskanju IP naslova vašega tiskalnika? Pokažemo vam, kako ga najti.

Kako odpraviti napako GeForce Now s kodo 0xC272008F

Kako odpraviti napako GeForce Now s kodo 0xC272008F

Pripravljate se na večer igranja in to bo velika noč – ravno ste prevzeli "Star Wars Outlaws" na pretočni storitvi GeForce Now. Odkrijte edino znano rešitev, ki vam pokaže, kako odpraviti napako GeForce Now s kodo 0xC272008F, da se lahko spet igralite Ubisoftove igre.

Osnove 3D tiskanja: Nasveti za vzdrževanje vašega 3D tiskalnika

Osnove 3D tiskanja: Nasveti za vzdrževanje vašega 3D tiskalnika

Ohranjanje vaših 3D tiskalnikov je zelo pomembno za dosego najboljših rezultatov. Tukaj je nekaj pomembnih nasvetov, ki jih je treba upoštevati.

Kako namestiti SSD na namizne in prenosne računalnike

Kako namestiti SSD na namizne in prenosne računalnike

Ste pravkar kupili SSD in upate, da nadgradite notranji pomnilnik svojega računalnika, vendar ne veste, kako namestiti SSD? Preberite ta članek zdaj!

Kaj storiti, če Powerbeats Pro ne napolni v ohišju

Kaj storiti, če Powerbeats Pro ne napolni v ohišju

Če vaši Powerbeats Pro ne napolnijo, uporabite drug vir napajanja in očistite slušalke. Pustite ohišje odprto med polnjenjem slušalk.

5 Razlogov, zakaj se vaš prenosni računalnik pregreva

5 Razlogov, zakaj se vaš prenosni računalnik pregreva

Odkrijte možne razloge, zakaj se vaš prenosni računalnik pregreva, skupaj s nasveti za preprečevanje te težave in ohranjanje hladnosti naprav.

10 Najboljših NAS naprava za shranjevanje za dom in profesionalno uporabo

10 Najboljših NAS naprava za shranjevanje za dom in profesionalno uporabo

Ne glede na to, ali iščete NAS za svoj dom ali pisarno, si oglejte ta seznam najboljših naprav za shranjevanje NAS.

Osnove 3D tiska: Seznam vzdrževanja, ki ga morate prebrati

Osnove 3D tiska: Seznam vzdrževanja, ki ga morate prebrati

Ohranjanje vaše opreme v dobrem stanju je obvezno. Tukaj je nekaj koristnih nasvetov za vzdrževanje vašega 3D tiskalnika v vrhunskem stanju.

Canon Pixma MG5220: Skeniranje Brez Tinta

Canon Pixma MG5220: Skeniranje Brez Tinta

Kako omogočiti skeniranje na Canon Pixma MG5220, ko zmanjka tinte.